如何克隆"分支作为一个提交?

时间:2015-10-07 13:41:58

标签: git

所以我有dev分支,目前有很多temp次提交。是否有可能以某种方式将所有提交合并为一个?或者使用上次提交的代码重新创建分支作为新分支?

4 个答案:

答案 0 :(得分:2)

是的,这是可能的。如果您有以下情况:

a--b--c (dev)
\
 d--e (temp)

命令

git merge --squash branchname

将导致

a--b--c--f

其中f包含de

中所做的更改

答案 1 :(得分:1)

两种方式

1。这将创建一个新的分支 -

第1步: 从您创建dev分支

的位置创建一个新分支
git checkout master
git branch -d new_branch

第2步: 结帐到那个分支

git checkout new_branch

第3步: 使用--squash标志合并dev

git merge --squash dev

第4步: add commitpush

git add .
git commit -m'commit message'
git push origin new_branch

2。同一分支中的一个提交(棘手的方式)

n是您要修改的提交数量

$ git rebase -i HEAD~n

在这里你可以编辑提交并在一次提交中压缩它们

答案 2 :(得分:0)

你可以用git中的rebase来做到这一点。

https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History

这是一个git教程,如何重新分支一个分支以删除未使用的提交消息。

答案 3 :(得分:0)

<强> Simple solution:

git rebase -i <after-this-commit>

Squash your commits

最近,我遇到了同样的问题,我的拉取请求中有41次提交,请参阅here。我只会触及我所实施的内容。

例如,如果您有3次提交,则可以使用交互式rebase将它们压缩并合并为一次。见下面的命令:

$ git rebase -i HEAD~n

例如,您想要压缩3个提交:

$ git rebase -i HEAD~3

现在,您将看到一个交互式rebase界面,您可以在第一次提交时编写reword / pick并在其余部分中进行压缩。请参阅此视频以便更好地理解。

Squashing commits video

  

这很容易,不会花费更长的时间。我努力了。

请参阅此帖子Squash my last X commits together using Git