[英]How to create a new branch without pre-merge remote-tracking commits in Git?
每當我創建一個新分支(git checkout -b <newBranchName>)
,我都會使用許多提交日志:
Merge remote-tracking branch 'upstream/master' into develop e53c044
Merge remote-tracking branch 'upstream/develop' into develop feda328
Merge remote-tracking branch 'upstream/develop' into develop 4bbd301
Merge remote-tracking branch 'upstream/develop' into develop 4dfcfcb
Merge remote-tracking branch 'upstream/develop' into develop bfaccfb
Merge remote-tracking branch 'upstream/develop' into develop 754c0ab
Merge remote-tracking branch 'upstream/develop' into develop b0454b0
Merge remote-tracking branch 'upstream/develop' into develop f96182f
如何創建沒有此類日志的分支?
也許git checkout
orphan
參數可以幫助您:
git checkout --orphan NEW_BRANCH
這將創建一個名為NEW_BRANCH的新分支,其上的提交為零。 但是現在所有文件都保留在緩存區域中,您可以使用“ git rm --cached ...”取消登台:
git rm -r --cached .
-r
在這里可以遞歸取消暫存文件。
新創建的分支的提交基於您從其創建的父分支。
這樣,如果你創建一個新的分支作為new
的develop
分支,如下圖:
A---B---C developer
\
new
當顯示new
分支的日志時,您會發現顯示了提交A
, B
和C
如果要創建new
分支而不顯示父提交 ,則可以創建一個孤立分支(在develop
分支上執行):
git checkout --orphan new
這樣就不會在new
分支上提交任何內容。 提交歷史如下:
A---B---C developer
new
如果你想創建new
,只有在提交的部分分支為它的父分支develop
,你可以使用:
git checkout -b new <last commit you want to contain in new branch>
例如,如果您只想在new
分支中包含提交A
和B
,則可以使用命令git checkout -b new <commit id for B>
,那么提交歷史將為:
A---B---C developer
\
new
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.