Fa-git-git-managing-branches

提供:Dev Guides
移動先:案内検索

Git-مدیریتBranchها

支社 میمیتوانیمازاینامکانبرایایجاددوجهتمختلفبرایتوسعهکدهااستفادهکنیم。 برایمثالمانسخه6امرامنتشرکردهایموحالامیتوانیمیکbranchبرایتوسعهنسخهویکهمباریااااللاباالالاباالاماللالابالالاماللامالساماللمااللمالسbug

ایجاد支店

Tomیکbranchجدیدبااستفادهازgit branch <ブランチ名>ایجادمیکند。 مامیتوانیمداخلیکブランチ、ブランチجدیدیایجادکنیم。 میتوانیمازیکcommitخاصیایکタグبهعنواننقطهشروعاستفادهکنیم。 اگریکcommitخاصراانتخابنکنیمブランチازヘッドポインターبهعنواننقطهشروعاستفادهمیکند

[jerry@CentOS src]$ git branch new_branch

[jerry@CentOS src]$ git branch
* master
new_branch

ブランチブランチトムトムازدستورgitブランチبرایلیستکردنブランチهایموجوداستفادهمیکند。 دستورgit showقبلازدستورgit checkoutنقطهفعلیرانشانهدارمیکند

درزیرنمایشتصویریایجادブランチآوردهشدهاست:

gitチュートリアル gitチュートリアル

تغییرブランチ

Jerryازgit checkoutبرایتغییرブランチاستفادهمیکند

[jerry@CentOS src]$ git checkout new_branch
Switched to branch 'new_branch'
[jerry@CentOS src]$ git branch
master
 *new_branch

میانبربرایایجادوانتخابブランチ

درمثالبالاماازدودستوربرایایجادوانتخابbranchاستفادهکردیم。 gitباgit checkout* -b *علاوهبرایجادbranchآنراانتخابهممیکند

[jerry@CentOS src]$ git checkout -b test_branch
Switched to a new branch 'test_branch'

[jerry@CentOS src]$ git branch
master
new_branch
* test_branch

پاککردن支店

یکbranchرابااستفادهازgit branch -dمیتوانیمپاکینیم。 اماباپاککردنیکbranchبهیکbranchدیگرمنتقلمیشویم。

ジェリー・アーシュラ test_branch アーサー・マサチューセッツمیخواهدآنراپاککند。 بنابراینابتداbranchراتغییرمیدهدسپسآنراپاکمیکند

[jerry@CentOS src]$ git branch
master
new_branch
* test_branch

[jerry@CentOS src]$ git checkout master
Switched to branch 'master'

[jerry@CentOS src]$ git branch -D test_branch
Deleted branch test_branch (was 5776472).

حالافقطدوbranchمیبینیم

[jerry@CentOS src]$ git branch
* master
new_branch

تغییرنام支店

Jerryتصمیمگرفتکهیکپشتیبانبرایワイド文字درپروژه文字列هاایجادکند。 اویکブランチجدیدایجادکردهبودکهنامشمناسبنبود。 بنابرایناوبادستورهای*古いブランチ名-m *、*新しいブランチ名-m *اینکارراانجاممیدهد

[jerry@CentOS src]$ git branch
* master
new_branch

[jerry@CentOS src]$ git branch -m new_branch wchar_support

درحالحاضر、دستورشعبهدستگاهگوارشخواهدشدبهنامشعبهجدیدنشانمیدهد。

[jerry@CentOS src]$ git branch
* master
wchar_support

متصلکردندو支店

Jerryیکتابعبرایبازگرداندنطولیکرشتهبرایワイドキャラクターنوشتهاست、کدجدیدبهشکلزیراست

[jerry@CentOS src]$ git branch
master
 *wchar_support

[jerry@CentOS src]$ pwd
/home/jerry/jerry_repo/project/src

[jerry@CentOS src]$ git diff

دستوراتبالانتایجزیررادربرخواهندداشت:

t a/src/string_operations.c b/src/string_operations.c
index 8ab7f42..8fb4b00 100644
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@ -1,4 +1,14 @@
#include <stdio.h>
+#include <wchar.h>

+size_t w_strlen(const wchar_t* s)

{

   const wchar_t *p = s;


   while (*p)
   + ++p;
   + return (p - s);

}

بعدازتستکردنcommitوتغییراتراpushمیکند:

[jerry@CentOS src]$ git status -s
M string_operations.c
?? string_operations

[jerry@CentOS src]$ git add string_operations.c

[jerry@CentOS src]$ git commit -m 'Added w_strlen function to return string lenght of wchar_t
string'

[wchar_support 64192f9] Added w_strlen function to return string lenght of wchar_t string
1 files changed, 10 insertions(+), 0 deletions(-)

ジェリー・アーシュリー・ジェリー・アーシュラ・シュトラール・シュトラール・ブランチ・ブリュック・デシュ・プッシュプッシュ・アーリー・シュリー・シュリー・シュシュ・アーシュ・シュリー・シュリー・シュリー・シュリー

[jerry@CentOS src]$ git push origin wchar_support   <−−− Observer branch_name

دستوراتبالانتایجزیررادربرخواهندداشت:

Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 507 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To gituser@git.server.com:project.git
* [new branch]
wchar_support -> wchar_support

بعدازcommitکردنتغییراتدرブランチ、ブランチجدیدبهشکلزیردرخواهدآمد

gitチュートリアル

TomکنجکاواستکهببیندJerryدر wchar_support چهکارمیکندبنابراینازgit logاستفادهمیکند

[tom@CentOS src]$ pwd
/home/tom/top_repo/project/src

[tom@CentOS src]$ git log origin/wchar_support -2

دستوراتبالانتایجزیررادربرخواهندداشت:

commit 64192f91d7cc2bcdf3bf946dd33ece63b74184a3
Author: Jerry Mouse <jerry@finddevguides.com>
Date: Wed Sep 11 16:10:06 2013 +0530

Added w_strlen function to return string lenght of wchar_t string


commit 577647211ed44fe2ae479427a0668a4f12ed71a1
Author: Tom Cat <tom@finddevguides.com>
Date: Wed Sep 11 10:21:20 2013 +0530

Removed executable binary

بامطالعهپیامهایcommitهاTomمتوجهتابعstrlenمیشود、اومیخواهداینتابعرادرマスターブランチداشتهباشد。 اوتصمیممیگیردکدJerryراباmergeکردندرマスターブランチداشتهباشد

[tom@CentOS project]$ git branch
* master

[tom@CentOS project]$ pwd
/home/tom/top_repo/project

[tom@CentOS project]$ git merge origin/wchar_support
Updating 5776472..64192f9
Fast-forward
src/string_operations.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)

بعدازmergeکردنマスターブランチمانندشکلزیرمیشود

gitチュートリアル

*wchar_support* ブランチのマージ、マスターブランチのマージ、マスターブランチの追加、コミットのコミット
[tom@CentOS project]$ cd src/

[tom@CentOS src]$ git log -1

commit 64192f91d7cc2bcdf3bf946dd33ece63b74184a3
Author: Jerry Mouse
Date: Wed Sep 11 16:10:06 2013 +0530

Added w_strlen function to return string lenght of wchar_t string

[tom@CentOS src]$ head -12 string_operations.c

دستوراتبالانتایجزیررادربرخواهندداشت:

#include <stdio.h>
#include <wchar.h>
size_t w_strlen(const wchar_t *s)
{
   const wchar_t *p = s;

   while (*p)
      ++p;

   return (p - s);
}

اوبعدازتستکردنتغییرات、آنهارابهoush、bramch masterمیکند

[tom@CentOS src]$ git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To gituser@git.server.com:project.git
5776472..64192f9 master −> master

ブランチのリベース

دستور、git repaseدستورmergeبرایbranchهاستاماتفاوتشایناستکهباتوجهبهcommitهادستکاریراانجاممیدهد。

Gitマージ、コミットブランチブランチبهبالایヘッドポインターمتعلقبهブランチمقصدمنتقلوmergeمیکند。 برایمثالدرブランチمحلیماcommitهارابهترتیبزیرداریمA→ B→ C→ DブランチبهترتیبزیرتبدیلمیکندA→ B→ C→ D→ X→ Yدستورgit rebaseباتوجهبهاشتراکهایcommitهایقبلید→ B→ B→ B→ B→ B→> −> X−> Yراباهمادغاممیکند、ونتیجهچیزیشبیهترتیبزیرمیشودA−> B−> X−> Y−> C−> D

هنگامیکهچندبرنامهنویسروییکリモートリポジトリکارمیکنند、نمیتوانیمترتیبコミットهارادستکاریکنیم、بنابراینبهتراستازリベースاستفادهکنیمتاتغییراتبهانتهایهایقبلیاضافهشودコミット