গিট: মাথা বিচ্ছিন্ন না করে শাখা স্যুইচ করুন


102

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

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

আমি গিটারে নতুন তাই আমি দুঃখিত যদি আমি একজন বোকা হয়ে থাকি তবে আমি ডক্সে এমন কিছু খুঁজে পাচ্ছি না যা আমাকে আমার মাথাটি আবার সংযুক্ত করতে সহায়তা করবে।

সম্পাদনা

একটি ট্র্যাকিং শাখার ধারণাটিই আমি অনুপস্থিত ছিল। যেহেতু আমি সেই ধারণাটি তৈরি করেছি সবকিছু পরিষ্কার। ব্যক্তিগতভাবে আমি git branch --trackসিনট্যাক্সটি এর চেয়ে অনেক বেশি স্বজ্ঞাত বলে মনে করি git checkout -b branch-name origin/branch-name

সাহায্যের জন্য ধন্যবাদ!


গিট ২.২৩ (আগস্ট 2019) দিয়ে মাথা ছাড়াই শাখা পরিবর্তন করতে, ব্যবহার করুন git switch: আমার উত্তর নীচে দেখুন
ভনসি

উত্তর:


116
# first time: make origin/branchname locally available as localname
git checkout -b localname origin/branchname 

# othertimes 
git checkout localname 

git push origin

সুবিধার জন্য, আপনি স্থানীয় নাম এবং শাখার নামগুলির জন্য একই স্ট্রিংটি ব্যবহার করতে পারেন
যখন আপনি চেক আউট করেছেন তখন আপনি origin/branchnameসত্যিই কোনও শাখা পরীক্ষা করছেন না। origin/branchnameএকটি "দূরবর্তী" নাম, এবং আপনি সেগুলির একটি তালিকা পেতে পারেন

branch -a 

আপনি যদি রঙগুলি সক্ষম করে থাকেন তবে স্থানীয় শাখাগুলি এক রঙের এবং অন্যটি দূরবর্তী হবে।

এতে স্যুইচ-টু ও কাজ করতে সক্ষম হতে আপনাকে প্রথমে স্থানীয়ভাবে একটি দূরবর্তী শাখাকে ট্র্যাক করতে হবে।


9
ম্যান, "গিট চেকআউট উত্স / শাখার নাম" ব্রাঙ্কটি এখনও ট্র্যাক না করা থাকলে স্বয়ংক্রিয়ভাবে ট্র্যাকিং শুরু করে না?
মার্টিন কোনিসেক

4
কারণ আপনার বিদেশী শাখার জন্য এখনও স্থানীয় নাম প্রয়োজন।
কেন্ট ফ্রেড্রিক

আমি যা করছি তা এখানে এবং ত্রুটি বার্তাটি: it গিট চেকআউট-বি বিষয় / আনতে হবে প্রবাহ / বিষয় / মারাত্মক: গিট চেকআউট: আপডেট করা পাথগুলি শাখাগুলি স্যুইচ করার সাথে বেমানান। প্রতিশ্রুতি হিসাবে সমাধান করা যায় না এমন 'আপস্ট्रीम / টপিক / ফেচ' চেকআউট করার ইচ্ছা কি আপনার ছিল?
উলু

4
রঙ সম্পর্কে টিপ জন্য ধন্যবাদ। রঙগুলি সক্ষম করতে:git config --global --add color.ui true
পনিয়ার্স

4
এটি লক্ষণীয় যে "উত্স / শাখা নাম" আক্ষরিক অর্থে এমন কোনও জিনিস হতে পারে যা কোনও SHA1, বা নিজের মধ্যে একটি SHA1 এর সমাধান হয় =)। আমি নিয়মিত এটি ব্যবহার করি স্বেচ্ছাসেবী শিকড় সহ স্বেচ্ছাসেবী শাখা তৈরি করতে।
কেন্ট ফ্রেড্রিক

16
git clone git@github.com:abc/def.git
cd def

এখন একটি ট্র্যাকিং শাখা তৈরি করুন:

git branch --track experimental origin/experimental
git checkout experimental

তারপরে, সেখানে কাজ করার পরে, কেবল গিথুবকে এগিয়ে যান

git push

4
গিট শাখা -ত উত্স / পরীক্ষামূলক # এত বেশি টাইপ করার দরকার নেই :)
ডাস্টিন

আমি যে শাখাকে ট্র্যাক করতে চাই সেগুলি বিষয় / আনয়ন বলা হয়। আমি যখন it গিট শাখা - ট্র্যাক বিষয় / আনতে প্রবাহ / বিষয় / আনতে চেষ্টা করি তখন এটি মারাত্মক: একটি বৈধ অবজেক্টের নাম নয়: 'আপস্ট্রিম / বিষয় / আনতে' '
উলু

4
@ ডাস্টিন, এই কমান্ডটি একটি স্থানীয় শাখা 'উত্স / পরীক্ষামূলক' তৈরি করে যা স্থানীয় মাস্টারকে অনুসরণ করে। আমি অনুমান করছি এটি মোটামুটি সাধারণ ভুল।
PDug 21

4
@PDug% গিট চেকআউট-অব উত্স / পরীক্ষামূলক শাখা পরীক্ষামূলক সেট আপ করুন রিবেসিংয়ের মাধ্যমে উত্স থেকে পরীক্ষামূলক দূরবর্তী ট্র্যাক করতে। একটি নতুন শাখা 'পরীক্ষামূলক'
ডাস্টিন

11

কেন্টের জবাব প্রসারিত করার জন্য, আপনার ক্লোনটি করার পরে আপনার একমাত্র শাখা থাকবে (রিমোটগুলি গণনা করা হয় না) হ'ল আপনি যে ক্লোনোটি সংগ্রহ করেছেন সেগুলিতে সক্রিয় ছিল - মাস্টার আপনার ক্ষেত্রে।

সুতরাং, প্রথমে আপনি দূরবর্তী পরীক্ষামূলক শাখাকে ট্র্যাক করতে একটি নতুন শাখা তৈরি করতে চান:

$ git branch experimental origin/experimental

এবং তারপরে এটি পরীক্ষা করে দেখুন:

$ git checkout experimental

তবে কেন্ট সঠিক - এই দুটি কমান্ড একত্রিত হতে পারে

$ git checkout -b experimental origin/experimental

3

গিট ২.২৩ (আগস্ট 2019) এর সাথে আপনি কমান্ডটি ব্যবহার করবেনgit switch

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

$ git switch new-topic
Branch 'new-topic' set up to track remote branch 'new-topic' from 'origin'
Switched to a new branch 'new-topic'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.