إدارة فرع بوابة
كل أنظمة التحكم في الإصدار تقريبا تدعم شكلا من أشكال فرع. فهذا يعني أنك يمكن استخدام فرع من الخط الرئيسي للتنمية لفصل ولا يؤثر على الخط الرئيسي مع الاستمرار في العمل.
شخص ما جيت نموذج المتفرعة تسمى "خصائص السكينة"، ولكن على وجه التحديد لأنها تتميز عن نظام التحكم في الإصدار بوابة لجميع أفراد الأسرة.
إنشاء تعليمات فرع:
git branch (branchname)
فرع قيادة التحول:
git checkout (branchname)
عند التبديل الفروع، وبوابة استخدام التقارير النهائية لقطات فرع لاستبدال محتويات دليل العمل الخاص بك، فرع متعددة لا يتطلب الدلائل متعددة.
دمج الفروع الأمر:
git merge
يمكنك دمج في فرع موحد مرات عديدة، يمكنك أيضا اختيار لحذف مباشرة بعد إدراجها الاندماج الفروع.
إدارة فرع بوابة
فرع قوائم
وترد الأوامر الأساسية في الفرع:
git branch
عندما بدون وسائط، سيتم سرد بوابة فرع في الفرع المحلي الخاص بك.
$ git branch * master
في هذه الحالة فهذا يعني أننا ودعا فرع "سيد"، والفرع هو الفرع الحالي.
عند تشغيل بوابة الحرف الأول، فإن بوابة الافتراضي إنشاء "سيد" فرع بالنسبة لك.
إذا كنا نريد أن إنشاء فرع يدويا وتبديل أكثر. تنفيذ بوابة فرع (BRANCHNAME) يمكن أن يكون.
$ git branch testing $ git branch * master testing
الآن يمكننا أن نرى ذلك مع اختبار الفرع الجديد.
عند إرسال التحديث في هذه الطريقة في آخر بإنشاء فرع جديد، إذا كان لاحقا أيضا تقديم تحديثات، ثم التحول إلى فرع "الاختبار"، وبوابة استعادة دليل العمل الخاص بك لتبدو وكأنها عند إنشاء فرع
المقبل، ونحن سوف تظهر لك كيفية التبديل فروع، تحولنا مع الخروج بوابة (فرع) أننا نريد لتعديل الفرع.
$ ls README $ echo 'w3cschool.cc' > test.txt $ git add . $ git commit -m 'add test.txt' [master 048598f] add test.txt 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 hello.php create mode 100644 test.txt $ ls README test.txt $ git checkout testing Switched to branch 'testing' $ ls README hello.php
عندما تحولنا إلى فرع "الاختبار"، ونضيف تمت إزالة TEST.TXT ملف جديد برز، يتم حذف الملف الأصلي hello.php الملف. التبديل إلى فرع "سيد"، فقد ظهر من جديد.
$ git checkout master Switched to branch 'master' $ ls README test.txt
يمكننا أيضا استخدام بوابة الدفع -b (BRANCHNAME) الأوامر لإنشاء فرع جديد، وتحولت على الفور إلى فرع، وذلك للعمل في هذا الفرع.
$ git checkout -b newtest Switched to a new branch 'newtest' $ git rm test2.txt rm 'test2.txt' $ ls README test.txt $ git commit -am 'removed test2.txt' [newtest 556f0a0] removed test2.txt 1 file changed, 1 deletion(-) delete mode 100644 test2.txt $ git checkout master Switched to branch 'master' $ ls README test.txt test2.txt
كما ترون، لقد قمنا بانشاء فرع، وإزالة بعض الملفات في سياق هذا الفرع، ثم يعود مرة أخرى إلى الفرع الرئيسي لدينا، هذه الملفات مرة أخرى.
استخدام فرع قطع منفصلة ستعمل، حتى نتمكن من القيام بأشياء في سياقات مختلفة، والانتقال ذهابا وإيابا.
إزالة الفروع
إزالة تعليمات فرع:
git branch -d (branchname)
على سبيل المثال، ونحن نريد لإزالة "اختبار" فرع:
$ git branch * master testing $ git branch -d testing Deleted branch testing (was 85fc7e7). $ git branch * master
دمج فرع
مرة واحدة في فرع له محتوى مستقل، وسوف تحتاج في نهاية المطاف إلى دمج إعادته إلى فرع سيدك. يمكنك استخدام الأمر التالي لدمج أي فرع إلى فرع الحالي إلى:
git merge
$ git branch * master newtest $ ls README test.txt test2.txt $ git merge newtest Updating 2e082b7..556f0a0 Fast-forward test2.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test2.txt $ ls README test.txt
الأمثلة المذكورة أعلاه فإننا سوف newtest دمجها في الفرع الرئيسي للفرع، يتم حذف test2.txt الملف.
دمج الصراعات
جنبا إلى جنب وليس مجرد إضافة ملف، عملية إزالتها، وجيت أيضا دمج التغييرات.
$ git branch * master $ cat test.txt w3cschool.cc
أولا، نحن إنشاء دليل يسمى "change_site" تحويل فرع في الماضي، ونحن سوف يكون محتوى لwww.w3cschool.cc.
$ git checkout -b change_site Switched to a new branch 'change_site' $ vim test.txt $ head -1 test.txt www.w3cschool.cc $ git commit -am 'changed the site' [change_site d7e7346] changed the site 1 file changed, 1 insertion(+), 1 deletion(-)
المحتوى المعدلة التي قدمت إلى "change_site" فرع. الآن، إذا قمت بالتبديل إلى فرع "سيد" أن نتمكن من العودة إلى الاطلاع على محتويات التعديلات لدينا قبل أن تعديل الملف TEST.TXT مرة أخرى.
$ git checkout master Switched to branch 'master' $ head -1 test.txt w3cschool.cc $ vim test.txt $ cat test.txt w3cschool.cc 新增加一行 $ git diff diff --git a/test.txt b/test.txt index 704cce7..f84c2a4 100644 --- a/test.txt +++ b/test.txt @@ -1 +1,2 @@ w3cschool.cc +新增加一行 $ git commit -am '新增加一行' [master 14b4dca] 新增加一行 1 file changed, 1 insertion(+)
الآن وقد تم تسجيل هذه التغييرات في بلدي "سيد" للفرع. القادم سوف "change_site" توحيد فرع انتهى.
$ git merge change_site Auto-merging test.txt CONFLICT (content): Merge conflict in test.txt Automatic merge failed; fix conflicts and then commit the result. $ cat test.txt <<<<<<< HEAD w3cschool.cc 新增加一行 ======= www.w3cschool.cc >>>>>>> change_site
سنقوم دمج قبل فرع إلى فرع "سيد"، ينشأ الصراع الدمج، ثم نحن بحاجة إلى تعديل يدويا.
$ vim test.txt $ cat test.txt www.w3cschool.cc 新增加一行 $ git diff diff --cc test.txt index f84c2a4,bccb7c2..0000000 --- a/test.txt +++ b/test.txt @@@ -1,2 -1,1 +1,2 @@@ - w3cschool.cc + www.w3cschool.cc +新增加一行
في بوابة، بوابة تضيف أن يمكننا استخدامها لاقول بوابة تم حل الصراع ملف
$ git status -s UU test.txt $ git add test.txt $ git status -s M test.txt $ git commit [master 88afe0e] Merge branch 'change_site'
الآن لدينا حلها بنجاح الصراعات الدمج، وتقديم النتائج.