日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git学习4:分支管理

發布時間:2024/6/18 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git学习4:分支管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每次提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,這個分支叫主分支,即master分支,HEAD指向master,master指向提交,所以,HEAD指向的就是當前分支。每次提交,master分支都會向前移動一步,這樣,隨著你不斷提交,master分支的線也越來越長。

當我們創建新的分支dev時,git新建了一個指針叫dev,指向master相同的提交,同時把HEAD指向dev,就表示當前分支在dev上,不過,從現在開始,對工作區的修改和提交就是針對dev分支了,比如新提交一次后,dev指針往前移動一步,而master指針不變,假如我們在dev上的工作完成了,就可以把dev合并到master上。最簡單的合并方法,就是直接把master指向dev的當前提交,就完成了合并。合并完分支后,甚至可以刪除dev分支。刪除dev分支就是把dev指針給刪掉,刪掉后,我們就剩下了一條master分支

?

首先,創建dev分支并切換到該分支,

git checkout -b dev

解釋:-b表示創建并切換,

相當于兩條命令:

git branch dev

git checkout dev

可以用命令git branch查看當前分支,會列出所有分支,在當前分支前標一個*號。

此時對readme.txt做修改,然后提交

git add readme.txt

git commit -m 'branch test'

現在切換回到master分支

git checkout master

查看readme文件,發現剛才添加的內容不見了,這是因為那個提交是在dev分支上,而不再當前的master分支上。

這時把dev分支的修改合并到master上

git merge dev

用于合并指定分支到當前分支上,

合并后,再查看readme文件,添加的內容出現了。

這時就可以刪除dev分支了,

git branch -d dev

刪除后,查看branch

git branch

只剩下master分支了。

?

沖突解決:

1,創建并切換dev分支

git checkout -v dev

修改readme文件,然后添加到暫存區,再提交新的commit。

2,切換回master,

git checkout master

修改readme文件,然后添加到暫存區,再提交新的commit。

master分支和dev分支各自都分別有新的提交,這種情況下,Git無法執行“快速合并”,只能試圖把各自的修改合并起來,但這種合并就可能會有沖突,

?git merge dev

果然出現沖突信息,顯示合并失敗。

git status也可以告訴我們沖突的文件,

我們可以直接查看readme.txt的內容:

Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,我們修改readme.txt后保存

然后添加到暫存區,再提交新的commit,,

合并后,用git log查看分支歷史,

git log --graph --pretty=online --abbrev-commit

最后,刪除dev分支:

git branch -d dev

?

一般分支進行合并時,git會采用Fast Forward模式,但這種模式有弊端,就是刪除分支后,會丟掉分支信息。如果要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。

創建并切換dev分支

git checkout -v dev

修改readme文件,然后添加到暫存區,再提交新的commit。

現在,我們切換回master:

git checkout master

準備合并dev分支,請注意--no-ff參數,表示禁用Fast forward:

git merge --no-ff -m 'merge with no-ff' dev

合并后,我們用git log看看分支歷史:

git log --graph --pretty=oneline --abbrev-commit

分支管理原則:master分支應該是非常穩定的,即僅僅用來發布新版本。平時在dev分支上進行試驗,時不時分之合并即可。

?

假設當前在dev分支上進行工作,但是需要馬上修復bug,如何處理呢?

由于dev的工作還未完成,所以不能提交,

1,使用git ?stash命令,把當前的工作現場儲存起來,等恢復現場之后繼續工作。

git ?stash

2,假設bug在master分支上,從master創建臨時分支

git checkout master

git checkout -b ?issue-101

3,修改bug,然后添加到暫存區,并提交

git add readme.txt

git commit -m 'fix bug 101'

4,切換到master分支,合并,刪除issue-101分支。

git checkout master

git merge --no-ff -m 'merge bug fix101' issue-101

git branch -d issue-101

5,回到dev分支

git checkout dev

6,查看工作現場

git stash list

7,恢復工作線程

git stash pop

恢復的同時也把stash內容刪除了

?

軟件開發中,每添加一個功能,最好新建一個feature分支,完成后合并,最后刪除該feature分支。

假如,開發代號為scan的新功能:

1,增加并切換到新分支上,

git checkout -b feature-sacan

2,開發完畢,增加到暫存區,并提交

git add scan.py

git commit -m 'develop new function'

3,切換到dev分支,

git checkout dev

4,合并和bug分支的合并類似,合并后刪除。

或者因某些原因,這個分支要刪除

git branch -d feature-scan

但是,git提示,這個分支沒有合并,要強行刪除,需要使用命令、

git branch -D featuren-scan

?

轉載于:https://www.cnblogs.com/Nick-M/p/4605528.html

總結

以上是生活随笔為你收集整理的git学习4:分支管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。