繁体   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