簡體   English   中英

如何在Git中不預先合並遠程跟蹤提交的情況下創建新分支?

[英]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在這里可以遞歸取消暫存文件。

新創建的分支的提交基於您從其創建的父分支。

這樣,如果你創建一個新的分支作為newdevelop分支,如下圖:

A---B---C   developer
         \
            new

當顯示new分支的日志時,您會發現顯示了提交ABC

如果要創建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分支中包含提交AB ,則可以使用命令git checkout -b new <commit id for B> ,那么提交歷史將為:

A---B---C   developer
     \
       new

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM