git clone https//git.code.sf.net/p/dumpper/code dumpper-code




كيف يمكنني التبديل إلى فرع آخر في بوابة؟ (3)

[ git checkout "branch_name" ]

هي طريقة أخرى للقول:

[ git checkout -b branch_name origin/branch_name ]

في حالة "branch_name" موجود عن بعد فقط .

[ git checkout -b branch_name origin/branch_name ] مفيد في حالة وجود أجهزة git checkout -b branch_name origin/branch_name عن بعد متعددة.

بخصوص [ git checkout origin 'another_branch' ] لست متأكداً من أن هذا ممكن ، AFAK يمكنك القيام بذلك باستخدام أمر "الجلب" - [ git fetch origin 'another_branch' ]

أي واحد من هذه السطور هو الصحيح؟

git checkout 'another_branch'

أو

git checkout origin 'another_branch'

أو

git checkout origin/'another_branch'

وما هو الفرق بين هذه السطور؟


إذا كان هناك another_branch موجود محليًا وأنت لست موجودًا في هذا الفرع ، عندئذٍ يقوم git checkout another_branch بالتبديل إلى الفرع.

إذا لم تكن another_branch موجودة لكن origin/another_branch لا ، فإن git checkout another_branch تساوي git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch . هذا لإنشاء another_branch من origin/another_branch وتعيين origin/another_branch مثل المنبع من another_branch .

إذا لم يكن موجودًا ، git checkout another_branch إلى الخطأ.

git checkout origin another_branch يرجع الخطأ في معظم الحالات. إذا كان origin عبارة عن مراجعة و another_branch عبارة عن ملف ، فإنه يقوم بفحص ملف تلك المراجعة ولكن على الأرجح هذا ليس ما تتوقعه. يستخدم origin الغالب في git fetch ، git pull و git push ، وهو اسم مستعار من رابط للمستودع البعيدة.

git checkout origin/another_branch حالة وجود origin/another_branch . يؤدي إلى أن يكون في حالة فصل الرأس ، وليس على أي فرع. إذا قمت بعمل تعهدات جديدة ، فإن الإلتزامات الجديدة لا يمكن الوصول إليها من أي فروع موجودة ولن يتم تحديث أي فرع من الفروع.


تحقق: git branch -a

إذا كنت تحصل على فرع واحد فقط. ثم نفذ الخطوات أدناه.

  • الخطوة 1: git config --list
  • الخطوة 2: git config --unset remote.origin.fetch
  • الخطوة 3: git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*




git-checkout