Latest web development tutorials

إدارة فرع بوابة

كل أنظمة التحكم في الإصدار تقريبا تدعم شكلا من أشكال فرع. فهذا يعني أنك يمكن استخدام فرع من الخط الرئيسي للتنمية لفصل ولا يؤثر على الخط الرئيسي مع الاستمرار في العمل.

شخص ما جيت نموذج المتفرعة تسمى "خصائص السكينة"، ولكن على وجه التحديد لأنها تتميز عن نظام التحكم في الإصدار بوابة لجميع أفراد الأسرة.

إنشاء تعليمات فرع:

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'

الآن لدينا حلها بنجاح الصراعات الدمج، وتقديم النتائج.