গিটহাবের একটি শাখার নামকরণ


296

আমি শুধু ব্যবহার করে আমার স্থানীয় শাখার নামকরণ করেছি

git branch -m oldname newname

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



আপনি অ্যাডমিন সেটিংস চেক করেছেন? গিথুব সম্পর্কিত আমার বর্তমান প্রকল্পের কোনও শাখা নেই তবে আপনি সেখানে রেপোর নাম পরিবর্তন করতে পারেন তাই আমি মনে করি আপনিও শাখার নাম পরিবর্তন করতে পারেন।
ইভানম্যাকডোনালাল

12
@ ইভানম্যাকডোনাল নোপ, আপনি গিটহাব সাইট থেকে গিট শাখার নাম পরিবর্তন করতে পারবেন না।
অ্যান্ড্রু মার্শাল

এই প্রশ্নের উত্তর প্রায় সর্বজনীন ভুল। প্রশ্নটি কীভাবে গিট শাখার নতুন নামকরণ করবেন না, এটি কীভাবে গিথুব শাখার নামকরণ করবেন । গিথুবের অনেকগুলি জিনিস একটি শাখায় আবদ্ধ থাকে যার অর্থ কোনও উত্তর নেই সেগুলি coverাকতে হবে। উদাহরণস্বরূপ পুনঃনামকরনের জন্য মাস্টার থেকে প্রধান
gman

@gman এটির মূল্যের জন্য, মনে হয় এই উত্তরগুলি ওপি-র প্রশ্নের চেতনার জবাব দিয়েছে। প্রযুক্তিগত দিক থেকে বহন করা দৃষ্টিকোণ থেকে বা বর্তমানে আপনি যে প্রাসঙ্গিক বিষয়টি অনুসন্ধান করছেন সেটি থেকে ওপি-র প্রশ্নটি সঠিকভাবে বর্ণিত হতে পারে না। তবে, এই প্রশ্নটি গিট বা গিটহাবের কোনও গভীর প্রযুক্তিগত পটভূমি থেকে আসেনি। এই দৃষ্টিকোণ থেকে, কেউ এটিকে একটি "শিক্ষানবিশ" বা প্রাথমিক প্রশ্ন বিবেচনা করতে পারে। এর মতো, এটি উচ্চারণযুক্ত, এবং এই দর্শকদের জন্য যথাযথভাবে উত্তর দেওয়া হয়েছে। হতাশাজনক, নিশ্চিত, তবে আমি মনে করি এই প্রশ্নটি, এই উত্তরগুলি যথাযথ / প্রাসঙ্গিক, পূর্ব বিএলএম গিট / হাব ব্যবহারের প্রশ্নাবলীর জন্য বিশেষত
শেরিলহোমান

উত্তর:


309

উল্লিখিত হিসাবে, গিথুব-এ পুরানোটি মুছুন এবং পুনরায় চাপ দিন, যদিও ব্যবহৃত কমান্ডগুলি প্রয়োজনের চেয়ে কিছুটা ভার্বোজ রয়েছে:

git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local

সহজ। কমান্ডগুলি কিছুটা ছড়িয়ে দেওয়া, গিট পুশ কমান্ডটি মূলত:

git push <remote> <local_branch>:<remote_branch>

সুতরাং কোনও স্থানীয়_ব্রাঞ্চ নির্দিষ্ট করে না দিয়ে ধাক্কা দেওয়ার অর্থ "আমার স্থানীয় সংগ্রহস্থল থেকে কিছুই নেবেন না এবং এটিকে দূরবর্তী শাখা তৈরি করুন"। আমি সবসময় এটিকে সম্পূর্ণ কলুষিত বলে মনে করেছি, তবে এটি এটি হয়ে গেছে।

সম্পাদনা: এর হিসাবে গীত 1.7 সেখানে একটি দূরবর্তী শাখা মুছে ফেলার জন্য একটি বিকল্প বাক্য গঠন হল:

git push origin --delete name_of_the_remote_branch

সম্পাদনা: মন্তব্যগুলিতে @ void.pointer দ্বারা উল্লিখিত

নোট করুন যে আপনি 2 টি পুশ ক্রিয়াকলাপ একত্রিত করতে পারেন:

git push origin :old_branch new_branch

এটি উভয়ই পুরানো শাখাটি মুছে ফেলবে এবং নতুনটিকে চাপ দেবে।

এটিকে একটি সরল উপন্যাসে রূপান্তরিত করা যেতে পারে যা দূরবর্তী, মূল শাখা এবং নতুন শাখার নামটিকে যুক্তি হিসাবে গ্রহণ করে ~/.gitconfig:

[alias]
    branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"

ব্যবহার:

git branchm origin old_branch new_branch

নোট করুন যে শেল কমান্ডগুলিতে অবস্থানগত যুক্তিগুলি গিটের পুরানো (২.৮ পূর্বের) সংস্করণগুলিতে সমস্যাযুক্ত ছিল, তাই গিটার সংস্করণ অনুসারে উপনামটি পৃথক হতে পারে। বিশদ জন্য এই আলোচনা দেখুন ।


32
মনে রাখবেন যে, আপনি 2 ধাক্কা অপারেশন একত্রিত করতে পারেন: git push origin :old_branch new_branch। এটি উভয়ই পুরানো শাখাটি মুছে ফেলবে এবং নতুনটিকে ধাক্কা দেবে।
void.pointer

4
পুরানো মোছার আগে নতুন শাখাটি ধাক্কা দেওয়া যায় না এমন কোনও কারণ আছে কি? ক্রিয়েশন অপারেশন সফল হওয়ার পরে মুছে ফেলা অপারেশনটি ঘটতে পারে এমন ব্যক্তিগতভাবে আমি ব্যক্তিগতভাবে অগ্রাধিকার দিই, যদি কিছু ভুল হয়ে যায় তবে।
jmort253

7
কাজ করে না. এটি শাখাটি পুরানো নাম সহ গিথুবকে সহজেই ফিরিয়ে দেবে।
জিফ

1
@ অ্যাডাম পারকিন ১। git branch -m new_branch(পুরানো_ব্রঞ্চের নাম নতুন_ব্রঞ্চে রাখুন) ২ git commit -m 'msg', ৩. git push৪. এমএমএম, ওল্ড ব্রাঞ্চ গিথুব এ দেখায়, গুগল প্রশ্ন করে এবং আপনার উত্তরটি আমি নিয়ে যাই 5.. git push origin :old_branch(এটি মুছে ফেলা হয়েছে) 6.. git push origin new_branch... সম্পূর্ণ বলেছে* [new branch] new_branch -> old_branch । গিথুব ফিরে যান old_branchএবং আবার দেখায়। যদি আমি গিথুব ওয়েব ইউআই-তে মুছে ফেলি তবে আমার কাছে "পুনরুদ্ধার" করার বিকল্প রয়েছে, সুতরাং মনে হচ্ছে নতুন_ব্র্যাঞ্চকে চাপ দেওয়া কেবল পুনরুদ্ধার করছে।
কেসিভিন

2
একটি বিষয় সচেতন হওয়া উচিত তা হল আপনি যখন শাখার নাম পরিবর্তন করবেন, সেই টান অনুরোধের বিরুদ্ধে আপনার যে কোনও পুল অনুরোধ খোলা থাকবে তা স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে। আমাদের
ব্রাঞ্চটির

24

নিম্নলিখিত কমান্ডগুলি আমার পক্ষে কাজ করেছে:

git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want

এটি কাজ করে একটি সংক্ষিপ্ত উত্তর। বিটিডাব্লু, প্রথম কমান্ডও উত্তরের শেষ হিসাবে রাখা যেতে পারে।
এরিক ওয়াং

এই উত্তরটি
গিথব

1
আসলে, আমি এই মাত্র দু'বার করেছিলাম এবং এটি গিথুবে কাজ করেছিল।
spozun

17

আমি 3 টি কমান্ড পেয়েছি যে কীভাবে আপনি আপনার গিট শাখার নাম পরিবর্তন করতে পারবেন এবং এই আদেশটি এটি করার দ্রুত উপায়

git branch -m old_branch new_branch         # Rename branch locally    
git push origin :old_branch                 # Delete the old branch    
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

আপনার যদি ধাপে ধাপে প্রয়োজন হয় তবে আপনি এই দুর্দান্ত নিবন্ধটি পড়তে পারেন

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


1
git push --set-upstreamযদি আপনি দূরবর্তী শাখাটি মোছার আগে স্থানীয়ভাবে গিথুব অ্যাপ্লিকেশন ব্যবহার করে শাখার নাম পরিবর্তন করতে চান তবে এটি সবচেয়ে গুরুত্বপূর্ণ অংশ।
লুই ইয়াং

এই উত্তরটি
গিথব

12

কেবল পুরাতন শাখাটি সরান এবং একটি নতুন তৈরি করুন।

উদাহরণ (কেবলমাত্র দূরবর্তী শাখার নামকরণ):

git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname

আপনার সম্ভবত স্থানীয় শাখার নাম পরিবর্তন করা উচিত এবং কোথায় ধাক্কা / টানতে হবে সেটির জন্য সেটিংস পরিবর্তন করা উচিত।


1
২ য় কমান্ড হওয়া উচিত নয় git push origin newname:refs/heads/newname? মাস্টার এবং নতুন নাম একই প্রতিশ্রুতিবদ্ধ না নির্দেশ করতে পারে।
স্টিভ ফলি

"মাস্টার" ঠিক যেমন উদাহরণ, এখন পরিবর্তন হবে।
vi।

হতে পারে দুটি কমান্ডের ক্রমটি বিপরীত হওয়া উচিত (অর্থাত্ প্রথমে নতুন নাম আপলোড করুন, তার পরে পুরানো অপসারণ করুন)
vi।

এই উত্তরটি
গিথব

@gman, গিট-ওয়াইজ এর নামকরণও কি গিথুব-বুদ্ধি করে এর নামকরণ করে না?
vi।

9

স্থানীয় ও দূরবর্তী অঞ্চলে শাখাটির নতুন নামকরণ করুন

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

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

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

সুতরাং উপসংহার হয়

git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name

এই উত্তরটি
গিথব

এটি গিটের জন্য এবং গিটহাব গিটের অধীনে রয়েছে সুতরাং এটি কাজ করবে এবং এটি আমার এবং অন্যদের সাথে কাজ করে
আবদুলারহমান মোহাম্মদ

এটি কাজ করে না। প্রথম এবং দ্বিতীয় পদক্ষেপ চেষ্টা করুন git branch -m new-name && git push origin :master new-name। এটা ব্যর্থ হবে। যদি এই উত্তরটি কেবল গিট সম্পর্কে এবং গিতুব নয় তবে এই প্রশ্নটি আরও কয়েকটি প্রশ্নের সদৃশ এবং এটি বন্ধ করা উচিত। যদি এটি সত্যই গিথুব সম্পর্কে হয় তবে উত্তরটি গিথুবকে কভার করতে হবে। এই উত্তর না।
gman

6

আপনি এটি টার্মিনাল ছাড়াই করতে পারেন, আপনাকে কেবল নতুন নাম দিয়ে একটি শাখা তৈরি করতে হবে, এবং পুরানোটি সরিয়ে ফেলতে হবে। এটি করতে আপনি এই পোস্টটি ব্যবহার করতে পারেন।

https://github.com/blog/1377-create-and-delete-branches


2

আমার জন্য যা কাজ করেছে তা এখানে:

1.) প্রথমে নতুন শাখা তৈরি করুন: গিট পুশ গিথুব নতুন নাম: রেফ / মাথা / নতুন নাম

২) গিথুব সাইটে, গোটিং সেটিংসে এবং ডিফল্ট শাখাকে নতুন নাম পরিবর্তন করুন

৩) পুরাতন নাম গিট পুশ গিথুব - মুছে ফেলুন পুরাতন নাম


0
  1. আটলশিয়ান উত্সট্রি (বিনামূল্যে) ডাউনলোড করুন ।
  2. আপনার সংগ্রহস্থলের স্থানীয় ক্লোনটি আমদানি করুন।
  3. সাইডবারে, নাম পরিবর্তন করতে আপনার শাখায় ডান ক্লিক করুন। প্রসঙ্গ মেনু থেকে "শাখার নাম পরিবর্তন করুন ..." নির্বাচন করুন এবং এর নাম পরিবর্তন করুন।
  4. উত্সে ধাক্কা।

ধন্যবাদ, তবে আমদানির পাশাপাশি আমাকে শাখায় স্যুইচ করতে হয়েছিল।
ফ্ল্যাশ শেরিডান

1
এই উত্তরটি
গিথব

0

এটি নিখুঁতভাবে কীভাবে করবেন তা এই নিবন্ধটি দেখায়।
১. স্থানীয় গিট শাখার নাম পরিবর্তন করতে, আমরা নামটি সংশোধন করতে গিট শাখা-এম কমান্ডটি ব্যবহার করতে পারি:
git branch -m feature1 feature2
২. আপনি যদি কেবল একটি দূরবর্তী গিট শাখার নাম বদলে দেওয়ার জন্য কমান্ডটি সন্ধান করছেন তবে এটি "এটি
git push -u origin feature2:feature3
পরীক্ষা করে দেখুন যে আপনার কোনও নেই আপনি এটি করার আগে শাখায় ট্যাগগুলি Youএটি দিয়ে আপনি এটি করতে পারেন git tag


এই উত্তরটি
গিথব

0

অন্য উপায় হ'ল নিম্নলিখিত ফাইলগুলির নাম পরিবর্তন করা :

  1. আপনার প্রকল্প ডিরেক্টরি নেভিগেট করুন
  2. পুনঃনামকরণ .git/refs/head/[branch-name]করতে.git/refs/head/new-branch-name
  3. নামান্তর .git/refs/remotes/[all-remote-names]/[branch-name]করতে.git/refs/remotes/[all-remote-names]/new-branch-name

আপনার স্থানীয় পিসিতে এবং শিরোনামগুলির নাম পরিবর্তন করুন উদ্ভব (গুলি) চালু / দূরবর্তী সার্ভার (গুলি)

শাখার নাম পরিবর্তন করা হয়েছে (স্থানীয় এবং দূরবর্তী!)


মনোযোগ

যদি আপনার বর্তমান শাখা-নামটিতে স্ল্যাশ ( /) গিট থাকে তবে ডিরেক্টরিগুলি যেমন তৈরি করে:

বর্তমান শাখার নাম: "awe/some/branch"

  • .git/refs/head/awe/some/branch
  • .git/refs/remotes/[all-remote-names]/awe/some/branch

শাখা-নাম ইচ্ছুক: "new-branch-name"

  1. আপনার প্রকল্প ডিরেক্টরি নেভিগেট করুন
  2. branchফাইলটি অনুলিপি করুন.git/refs/*/awe/some/
  3. এটা করা .git/refs/head/
  4. branchসব থেকে ফাইল অনুলিপি.git/refs/remotes/*/awe/some/
  5. তাদের ভিতরে রাখুন .git/refs/remotes/*/
  6. সমস্ত অনিচ্ছাকৃত branchফাইলের নাম পরিবর্তন করুন new-branch-name
  7. ডিরেক্টরি এবং ফাইলের কাঠামো এখন এর মতো দেখাচ্ছে কিনা তা পরীক্ষা করে দেখুন:
    • .git/refs/head/new-branch-name
    • .git/refs/remotes/[all-remote-names]/new-branch-name
  8. আপনার সমস্ত দূরবর্তী উত্স / সার্ভারগুলিতে একই করুন (যদি বিদ্যমান থাকে)
    • তথ্য : রিমোট সার্ভারে সাধারণত কোনও রেফ / রিমোট / * ডিরেক্টরি থাকে না কারণ আপনি ইতিমধ্যে রিমোট-সার্ভারে রয়েছেন;) (উন্নত গিট কনফিগারেশনে এটি সম্ভবত সম্ভব হতে পারে তবে আমি এটি কখনও দেখিনি)

শাখার এখন নামকরণ করা awe/some/branchহয়েছে new-branch-name(স্থানীয় এবং দূরবর্তী!)

শাখা-নামের ডিরেক্টরিগুলি সরানো হয়েছে।


তথ্য: এই উপায়টি সর্বোত্তম নাও হতে পারে তবে এটি এখনও তাদের পক্ষে কাজ করে যাদের অন্যান্য উপায়ে সমস্যা হতে পারে


এই উত্তরটি
গিথব

0

আমার ক্ষেত্রে, আমার নাম বদলে দেওয়া শাখাটি পেতে আমার একটি অতিরিক্ত কমান্ডের প্রয়োজন
git branch --unset-upstream
origin newname

(টাইপিংয়ের স্বাচ্ছন্দ্যের জন্য), আমি প্রথমে git checkout oldname
তারপরে নিম্নলিখিতটি চালান:

git branch -m newname
git push origin :oldname বা বাgit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname git push origin newname

এই অতিরিক্ত পদক্ষেপটি কেবলমাত্র প্রয়োজনীয় হতে পারে কারণ আমি আমার শাখাগুলিতে রিমোট ট্র্যাকিং সেটআপ করি (প্রবণতা করি) । এইভাবে যখন আমি চেক আউট করেছি, আমার পরে কেবলমাত্র পরিবর্তে কেবল টাইপ দরকার needgit push -u origin oldnameoldnamegit pushgit push origin oldname

যদি আমি কমান্ডটি আগে ব্যবহার না করি , গিটটি পুনরায় তৈরি করে এবং পুশ করে - আমার উদ্দেশ্যকে পরাস্ত করে।git branch --unset-upstreamgit push origin newbranch oldbranchnewbranchorigin oldbranch


এই উত্তরটি
গিথব

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

সমস্যাটি গিথুবগুলি শাখাগুলির সাথে বৈশিষ্ট্যগুলি যুক্ত করে। প্রধানকে মাস্টার নামকরণ করার চেষ্টা করুন এবং আপনার নির্দেশাবলী ব্যর্থ হবে।
gman

-1

নিম্নলিখিত কমান্ডগুলি স্থানীয়ভাবে এই শাখার নাম পরিবর্তন করে, দূরবর্তী অবস্থানের পুরানো শাখাটি মুছুন এবং নতুন শাখাটিকে পুশ করুন, স্থানীয় ব্রাঞ্চকে নতুন রিমোট ট্র্যাক করার জন্য সেট করুন:

git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch

যদিও আপনার কোড স্নিপেটটি সমস্যাটি সমাধান করতে পারে, আপনার কোডটির উদ্দেশ্য কী তা বর্ণনা করা উচিত (এটি কীভাবে সমস্যার সমাধান করে)। এছাড়াও, আপনি স্ট্যাকওভারফ্লো.com
আহমদ এফ

এই উত্তরটি
গিথব

-1

যে হিসাবে সহজ । স্থানীয়ভাবে গিট শাখার নাম পরিবর্তন করতে এবং দূর থেকে এই স্নিপেটটি ব্যবহার করুন (পরীক্ষিত এবং একটি কবজির মতো কাজ করে):

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

ব্যাখ্যা:

  1. পদক্ষেপের নাম পরিবর্তন করুন:

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

  2. পদক্ষেপ মুছুন:

    গিট রেফারেন্স: গিট পুশ অরিজিনাল: পরীক্ষামূলক একটি রেফ খুঁজে পান যা মূল সংগ্রহস্থলের (যেমন রেফ / মাথা / পরীক্ষামূলক) পরীক্ষামূলকভাবে মেলে এবং মুছুন।

  3. রিমোট রেপো স্টেপ আপডেট করুন (ট্র্যাকিংয়ের জন্য প্রবাহের রেফারেন্স):

    গিট রেফারেন্স: --set-upstream প্রতিটি শাখার জন্য যা আপ টু ডেট বা সাফল্যের সাথে ধাক্কা দেওয়া হয়েছে, আপ স্ট্রিম (ট্র্যাকিং) রেফারেন্স যুক্ত করুন, যুক্তি-কম গিট-পুল [1] এবং অন্যান্য কমান্ড দ্বারা ব্যবহৃত হয়। আরও তথ্যের জন্য, শাখা..গিট কনফিগারেশনে ডুবে দেখুন [1]।


এই উত্তরটি
গিথব


-1

গিট ব্রাঞ্চে গিট শাখা-তে পুরানো_নাম নাম_এটি আপনার স্থানীয় রেপো গিট পুশ উত্সের শাখার নামটি পরিবর্তন করবে: পুরানো_নাম নতুন_নাম পরিবর্তিত নামটিকে রিমোটে সরিয়ে দেবে এবং পুরানো শাখা গিট পুশ উত্স মুছে ফেলবে - নতুন নাম ব্যবহার করে স্থানীয় শাখাকে ট্র্যাক করতে সেট করবে দূরবর্তী শাখা। এটি সমস্যার সমাধান করে


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