所以我有dev
分支,目前有很多temp
次提交。是否有可能以某种方式将所有提交合并为一个?或者使用上次提交的代码重新创建分支作为新分支?
答案 0 :(得分:2)
是的,这是可能的。如果您有以下情况:
a--b--c (dev)
\
d--e (temp)
命令
git merge --squash branchname
将导致
a--b--c--f
其中f
包含d
和e
答案 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
commit
和push
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>
最近,我遇到了同样的问题,我的拉取请求中有41次提交,请参阅here。我只会触及我所实施的内容。
例如,如果您有3次提交,则可以使用交互式rebase将它们压缩并合并为一次。见下面的命令:
$ git rebase -i HEAD~n
例如,您想要压缩3个提交:
$ git rebase -i HEAD~3
现在,您将看到一个交互式rebase界面,您可以在第一次提交时编写reword / pick并在其余部分中进行压缩。请参阅此视频以便更好地理解。
这很容易,不会花费更长的时间。我努力了。