Git 分支管理策略

2021-09-29 06:31:15 字數 2668 閱讀 6776

注意到git用(head -> master)(origin/master)標識出當前分支的head和遠端origin的位置分別是582d922 add authord1be385 init hello,本地分支比遠端分支快兩個提交。

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

* 582d922 (head -> master) add author

* 8875536 add comment

* d1be385 (origin/master) init hello

* e5e69f1 merge branch 'dev'

|\

| * 57c53ab (origin/dev, dev) fix env conflict

| |\

| | * 7a5e5dd add env

| * | 7bd91f1 add new env

在實際開發中,我們應該按照幾個基本原則進行分支管理:首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合併到master上,在master分支發布1.0版本;

你和你的小夥伴們每個人都在dev分支上幹活,(注意是每個人,包括你自己)每個人都有自己的分支,時不時地往dev分支上合併就可以了。

所以,團隊合作的分支看起來就像這樣:

git分支十分強大,在團隊開發中應該充分應用。

合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。

通常,合併分支時,如果可能,git會用fast forward模式,但這種模式下,刪除分支後,會丟掉分支資訊。

如果要強制禁用fast forward模式,git就會在merge時生成乙個新的commit,這樣,從分支歷史上就可以看出分支資訊。

接下來建立乙個新的分支並對其中的檔案進行修改,然後新增提交.返回master分支

然後使用--no-ff引數合併

$ git merge --no-ff -m "merge with no-ff" dev

merge made by the 'recursive' strategy.

readme.txt | 1 +

1 file changed, 1 insertion(+)

因為本次合併要建立乙個新的commit,所以加上-m引數,把commit描述寫進去。

合併後,我們用git log看看分支歷史:

*   e1e9c68 (head -> master) merge with no-ff

|\

| * f52c633 (dev) add merge#這個就是能夠檢視的合併#刪除dev後也會有分支,只不過少了dev

不能檢視合併歷史的分支是這樣

λ git merge dev3

updating 61f64f3..e0d028a

fast-forward

readme.txt | 3 ++-

1 file changed, 2 insertions(+), 1 deletion(-)

c:\users\administrator.sc-201605202132\learngit (master -> origin)

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

* e0d028a (head -> master, dev3) 檢查是否刪除後依然能看出合併過#dev3 沒有分支的標記

* 61f64f3 merge with no-ff

|\| * 5c287fe modify this

|/* 127f749 conflict fixed

|\| * fb4d959 and ******

* | 466aa52 & ******

|/* a8a3763 don't konw what

Git分支管理策略

如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管理軟體,分支操作實際上會生成乙份現...

Git分支管理策略

git分支管理策略 作者 阮一峰 如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管...

Git分支管理策略

如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管理軟體,分支操作實際上會生成乙份現...