如何在Git中没有预合并远程跟踪提交的情况下创建新分支?

时间:2017-11-03 02:47:51

标签: git github version-control

每当我创建一个新分支(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

Image

如何在没有此类日志的情况下创建分支?

2 个答案:

答案 0 :(得分:0)

orphan的{​​{1}}参数可以帮助您:

git checkout

这将创建一个名为NEW_BRANCH的新分支,其中包含0个提交。但现在所有文件都保留在缓存区域,您可以使用“git rm --cached ...”来取消暂存:

git checkout --orphan NEW_BRANCH

git rm -r --cached . 这里可以递归地取消暂存文件。

答案 1 :(得分:0)

新创建的分支的提交基于您从中创建的父分支。

例如,如果您从new分支创建新分支develop,如下图所示:

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>

例如,如果您只想在A分支中包含提交Bnew,则可以使用命令git checkout -b new <commit id for B>,然后提交历史记录将为:< / p>

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