আমি কীভাবে একটি গিট স্থানীয় এবং দূরবর্তী শাখার নাম পরিবর্তন করব?


457

আমার মাস্টার -> উত্স / রেগ্যাসি, ফিচারএ -> উত্স / ফিচারএ এর মতো চারটি শাখা রয়েছে। আপনি দেখতে পাচ্ছেন, আমি ভুল নামটি টাইপ করেছি।

সুতরাং আমি একটি প্রত্যন্ত শাখার নাম পরিবর্তন করতে চাই (উত্স / রেগ্যাসি → উত্স / উত্তরাধিকার বা উত্স / মাস্টার)

আমি নীচে কমান্ড চেষ্টা:

git remote rename regacy legacy

তবে গিট কনসোল আমাকে একটি ত্রুটি বার্তা ফিরিয়ে দিয়েছে।

 error : Could not rename config section 'remote.regacy' to 'remote.legacy'

কিভাবে আমি এই সমস্যার সমাধান করতে পারে?




উত্তর:


809

এখানে চিত্র বিবরণ লিখুন


এটি সম্পাদন করার কয়েকটি উপায় রয়েছে:

  1. আপনার স্থানীয় শাখা পরিবর্তন করুন এবং তারপরে আপনার পরিবর্তনগুলিকে ধাক্কা দিন
  2. স্থানীয় নামটি স্থানীয়ভাবে রাখার সাথে সাথে নতুন নামের সাথে শাখাটি রিমোটে পুশ করুন

স্থানীয় এবং দূরবর্তী নামকরণ

# Rename the local branch to the new name
git branch -m <old_name> <new_name>

# Delete the old branch on remote - where <remote> is, for example, origin
git push <remote> --delete <old_name>

# Or shorter way to delete remote branch [:]
git push <remote> :<old_name>

# Push the new branch to remote
git push <remote> <new_name>

# Reset the upstream branch for the new_name local branch
git push <remote> -u <new_name>

এখানে চিত্র বিবরণ লিখুন


কেবল রিমোট শাখার নামকরণ

ক্রেডিট: পিটিএম

# In this option, we will push the branch to the remote with the new name
# While keeping the local name as is
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>

গুরুত্বপূর্ণ তথ্য:

আপনি যখন git branch -m(সরানো) ব্যবহার করবেন তখন গিটও আপনার ট্র্যাকিং শাখাটিকে নতুন নামে আপডেট করবে।

git remote rename legacy legacy

git remote renameআপনার কনফিগারেশন ফাইলে আপনার দূরবর্তী বিভাগটি আপডেট করার চেষ্টা করছে। এটি নতুন নামে প্রদত্ত নামের সাথে রিমোটটির নাম বদলে দেবে, তবে আপনার ক্ষেত্রে এটি কোনওটিই খুঁজে পেল না, তাই নামকরণ ব্যর্থ হয়েছে।

তবে আপনি যা ভাবেন তা তা করবে না; এটি আপনার নামান্তর হবে স্থানীয় কনফিগারেশন দূরবর্তী নাম এবং না দূরবর্তী শাখা। 


দ্রষ্টব্য গিট সার্ভারগুলি আপনাকে ওয়েব ইন্টারফেস বা বাহ্যিক প্রোগ্রামগুলি (যেমন সোর্সট্রি ইত্যাদি) ব্যবহার করে গিট শাখাগুলির নাম বদলে দেওয়ার অনুমতি দিতে পারে, তবে আপনাকে মনে রাখতে হবে যে গিতে সমস্ত কাজ স্থানীয়ভাবে করা হয়, সুতরাং উপরের কমান্ডগুলি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে কাজ।


উপরের পরে এবং যখন আমি টান দেওয়ার চেষ্টা করব তখনই আপনাকে কিছু করতে হবে বার্তাটি:Your configuration specifies to merge with the ref ''refs/heads/old_name'
Krzysztof Krasoń

6
পুরানো উজানটি আনসেট করতে ভুলবেন না:git checkout <new_name> ; git branch --unset-upstream
মিগুয়েল পিং

2
@ মিগুয়েলপিংয়ের মন্তব্যটি গুরুত্বপূর্ণ। কোনও শাখার নাম পরিবর্তন করার চেষ্টা করার সময় আমি ইতিমধ্যে গিথুবকে ঠেলে দিয়েছি, স্থানীয় নামকরণ, মুছে ফেলা, নামকরণ এবং পুরানো নামটি পুনরায় ব্যবহারের ফলে পুনরায় চাপ দেওয়া ফলাফল। যদি আমি --unset-upstreamপুনরায় চাপ দেওয়ার আগে, এটি উদ্দেশ্য হিসাবে কাজ করে।
অ্যাডাম ট

1
রিমোটে পুরাতন নামের শাখায় খোলা পিআরগুলি স্বয়ংক্রিয়ভাবে বন্ধ হওয়া এড়ানোর কোনও উপায় আছে কি? গিটলাবে এটির মুখোমুখি হয়েছিল, যেখানে পুরানো শাখার নামটির পিআরটি উত্সের দিকে ঠেলে দেওয়ার পরে বন্ধ হয়ে গিয়েছিল।
হিমাংশু তানওয়ার

142

যদি আপনি কোনও শাখাকে ভুল করে নাম দিয়ে থাকেন এবং এটিকে দূরবর্তী সংগ্রহস্থলে ঠেলে দেন তবে এই শাখার নাম পরিবর্তন করতে এই পদক্ষেপগুলি অনুসরণ করুন ( এই নিবন্ধের ভিত্তিতে ):

  1. আপনার স্থানীয় শাখার নাম পরিবর্তন করুন:

    • আপনি যদি শাখায় থাকেন তবে আপনি নাম পরিবর্তন করতে চান:
      git branch -m new-name

    • আপনি যদি অন্য একটি শাখায় থাকেন:
      git branch -m old-name new-name

  2. old-nameদূরবর্তী শাখাটি মুছুন এবং new-nameস্থানীয় শাখাটি টিপুন :
    git push origin :old-name new-name

  3. নতুন নাম স্থানীয় শাখার জন্য প্রবাহ শাখাটি পুনরায় সেট করুন : শাখায়
    স্যুইচ করুন এবং তারপরে:
    git push origin -u new-name


1
প্রথম 2 টি পদক্ষেপের পরে, যদি আপনি বর্তমান শাখা সম্পর্কে কোনও ত্রুটি বার্তা পেয়ে থাকেন তবে রিমোট রেপোতে একটি অ-অস্তিত্ব শাখার দিকে নির্দেশ করে, তৃতীয় ধাপটি এটি স্থির করে
কেভিন হুক

1
@ Dr1Ku এর একটি শাখা মুছে ফেলার জন্য git push <remote> --delete old_nameএবং তার মধ্যে পার্থক্য জানতে হবে git push origin :old-name new-name
আশুতোষ চামোলি

বিটবকেট ব্যবহারকারী: পুনরায় নামকরণ করা হলে পদক্ষেপ 2 এ ত্রুটি ঠিক করুন master রেপো ডিফল্ট শাখাটিকে নতুন শাখায় সেট করে , । ত্রুটিটি হ'ল:By default, deleting the current branch is denied, because the next 'git clone' won't result in any file checked out, causing confusion. You can set 'receive.denyDeleteCurrent' configuration variable to 'warn' or 'ignore' in the remote repository to allow deleting the current branch, with or without a warning message. To squelch this message, you can set it to 'refuse'. error: refusing to delete the current branch: refs/heads/master
কলিন

অন্যদের মধ্যে সহজতম
আবদুল্লাহ নীলাম

37

মনে হয় সরাসরি পথ আছে:

আপনি যদি সত্যিই কেবল শাখাগুলির দূরবর্তী নাম পরিবর্তন করতে চান (একই সাথে কোনও স্থানীয় শাখার নাম পরিবর্তন না করে) আপনি একক কমান্ডের মতো এটি করতে পারেন

git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>

গিতে রিমোট শাখার নামকরণ

আরও বিস্তারিত জানার জন্য আসল উত্তরটি দেখুন।


1
2.20.1পুরানো শাখা মুছে ফেলাতে গিটে কাজ করেন নি তবে নতুনটি তৈরি করা হয়নি।
পল রাজ্জান বার্গ

26

এটি নিম্নলিখিত পদ্ধতিতেও করা যেতে পারে।

প্রথমে স্থানীয় শাখার নাম পরিবর্তন করুন, তারপরে দূরবর্তী শাখা।

স্থানীয় শাখার নামকরণ:

যদি অন্য একটি শাখায় লগ ইন করা হয়,

git branch -m old_branch new_branch 

একই শাখায় লগ ইন থাকলে,

git branch -m new_branch

রিমোট শাখাটির নামকরণ:

git push origin :old_branch    // Delete the remote branch

git push --set-upstream origin new_branch   // Create a new remote branch

5

আপনি যদি ইতিমধ্যে ভুল নামটিকে দূরবর্তীতে ঠেলে দিয়ে থাকেন তবে নিম্নলিখিতটি করুন:

  1. আপনি নাম পরিবর্তন করতে চান স্থানীয় শাখায় স্যুইচ করুন

    git checkout <old_name>

  2. স্থানীয় শাখার নতুন নামকরণ করুন

    git branch -m <new_name>

  3. <new_name>স্থানীয় শাখা পুশ করুন এবং প্রবাহ শাখাটি পুনরায় সেট করুন

    git push origin -u <new_name>

  4. <old_name>রিমোট শাখা মুছুন

    git push origin --delete <old_name>

এটি এই নিবন্ধের ভিত্তিতে তৈরি হয়েছিল ।


4

আপনার বর্তমান শাখার নাম পরিবর্তন করার জন্য একটি সরল স্নিপেট সংযুক্ত করা হচ্ছে (স্থানীয় এবং মূল)

git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>

গিট ডক্স থেকে ব্যাখ্যা :

গিট ব্রাঞ্চ-এম বা- এম বিকল্পের নাম পরিবর্তন করা হবে। যদি কোনও সম্পর্কিত রিফ্লোগ থাকে তবে এটির নামটি মিলিয়ে দেওয়া হবে এবং শাখার নামকরণের কথা মনে রাখার জন্য একটি রিফ্লগ এন্ট্রি তৈরি করা হবে। যদি বিদ্যমান থাকে তবে নামটি পুনরায় নামকরণ করতে বাধ্য করতে এম ব্যবহার করতে হবে।

বিশেষ রেসপেক: (বা +: নন-ফাস্ট-ফরওয়ার্ড আপডেটের অনুমতি দেওয়ার জন্য) "ম্যাচিং" শাখাগুলি ঠেলে দেওয়ার নির্দেশ দেয়: স্থানীয় পক্ষের প্রতিটি শাখার জন্য, একই নামের একটি শাখা ইতিমধ্যে উপস্থিত থাকলে দূরবর্তী দিকটি আপডেট করা হয় দূরবর্তী দিকে।

--set-upstream সেট আপ এর ট্র্যাকিং তথ্য তাই upstream শাখা হিসাবে বিবেচনা করা হয়। যদি কোনও নির্দিষ্ট না করা থাকে, তবে এটি বর্তমান শাখায় ডিফল্ট হয়।


3

সরাসরি কোন পদ্ধতি নেই,

  1. স্থানীয় শাখার নাম পরিবর্তন করুন ,

    আমার বর্তমান শাখা মাস্টার

    git branch -m master_renamed # মাস্টার_প্রেমী মাস্টারের নতুন নাম

  2. দূরবর্তী শাখা মুছুন,

    git push origin --delete master # অরিগিন দূরবর্তী নাম

  3. রিমোটে শাখার নাম বদলে রাখা,

    git push origin master_renamed

এটাই...


দুর্দান্ত এবং সহজ এবং কেবল 3 টি পদক্ষেপ। আমি যে উন্নতিটিই বলতে চাই তা হ'ল git push -u origin master_renamedশাখাটিকে ট্র্যাকিং শাখা হিসাবে সেট করা
ut9081

2

তিনটি সাধারণ পদক্ষেপে স্থানীয় শাখার নাম পরিবর্তন না করেও এটি করা যেতে পারে:

  1. গিটহাবের আপনার ভাণ্ডারে যান
  2. পুরাতন শাখা থেকে একটি নতুন শাখা তৈরি করুন যা আপনি নাম পরিবর্তন করতে চান
  3. পুরানো শাখা মুছুন

0

আমি এই গিট ওরফে ব্যবহার করি এবং এটি কাজটি স্বয়ংক্রিয়ভাবে করে:

git config --global alias.move '!git checkout master; git branch -m $1 $2; git status; git push --delete origin $1; git status; git push -u origin $2; git branch -a; exit;'

ব্যবহার: গিট সরানো FROM_BRANCH TO_BRANCH

মাস্টার, উত্স ইত্যাদির মতো আপনার ডিফল্ট নাম থাকলে এটি কাজ করে আপনি নিজের ইচ্ছামত পরিবর্তন করতে পারেন তবে এটি আপনাকে ধারণা দেয়।


0

স্থানীয় এবং দূরবর্তী শাখার নতুন নামকরণের জন্য আমাকে নিম্নলিখিত কাজটি করতে হয়েছিল:

# Rename the local branch to the new name
git branch -m <old_name> <new_name>

#  Delete the old remote branch
git push origin --delete <old_name>

# push to new remote branch - creates new remote branch
git push origin <new_name>

# set new remote branch as default remote branch for local branch
git branch --set-upstream-to=origin/<new_name> <new_name>

এটি বিদ্যমান উত্তরের চেয়ে আলাদা কীভাবে?
হিমাংশু তানওয়ার

0
  1. আপনার স্থানীয় শাখাটির নতুন নাম দিন। আপনি যদি শাখায় থাকেন তবে আপনি নাম পরিবর্তন করতে চান:

    গিট শাখা - নতুন নাম

আপনি যদি অন্য একটি শাখায় থাকেন:

git branch -m old-name new-name
  1. পুরানো নামের দূরবর্তী শাখাটি মুছুন এবং নতুন নাম স্থানীয় শাখাটি চাপ দিন।

    গিট পুশ আদি: পুরাতন নাম নতুন নাম

  2. নতুন নাম স্থানীয় শাখার জন্য প্রবাহ শাখাটি পুনরায় সেট করুন। শাখায় স্যুইচ করুন এবং তারপরে:

    গিট পুশ আদি - নতুন নাম

সব সেট!


0
  • আপনার স্থানীয় শাখাটির নতুন নাম দিন

আপনি যদি শাখায় থাকেন তবে আপনি নাম পরিবর্তন করতে চান:

git branch -m new-name

আপনি যদি বর্তমান সময়ে অন্য একটি শাখায় থেকে থাকেন:

git branch -m old-name new-name
  • পুরানো নামের দূরবর্তী শাখাটি মুছুন এবং নতুন নাম স্থানীয় শাখাটি চাপ দিন।

লক্ষ্য শাখায় থাকুন এবং:

git push origin :old-name new-name
  • নতুন নাম স্থানীয় শাখার জন্য প্রবাহ শাখাটি পুনরায় সেট করুন।

লক্ষ্য শাখায় স্যুইচ করুন এবং তারপরে:

git push origin -u new-name
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.