我不确定如何/是否可以压缩那些提交或仅组合/压缩我的提交?
仅压缩您自己的提交,不要压缩其他人的提交!!
最近,我遇到了同样的问题,我的拉取请求中有41个提交,我的分支发生了合并冲突,我的拉取请求已过期。我必须解决你现在面临的一些问题。我只会谈论我实施的内容。
one of my commits
another one of my commits
one of my commits, the first one after branching
我建议只压缩你的提交(如果你愿意,可以全部压缩)。
例如,如果你有3个提交,你可以使用交互式变基将它们压缩成一个。请参见下面的命令:
$ git rebase -i HEAD~n
例如,您想压缩3个提交:
$ git rebase -i HEAD~3
现在,您可以看到一个交互式的变基界面,在这里您可以在第一个提交上编写“reword/pick”,并在其余提交上进行“squash”。请观看此视频以更好地理解。
合并提交
merge commit
someone else's commit
another merge commit
another person's commit
将提交的内容变基到其他(他人)的提交
当使用git时,这是每个人都会遇到的常见问题。想象一下,你正在本地repo上工作。工作一段时间后,你进行了一些提交,现在你想将它们推送到原始远程库。很好,你使用了git push
,但出现了合并提交
问题。
你知道其他人可能也已经向相同的远程repo进行了提交,而此时远程repo已经更新。由于你的本地repo没有更新到远程repo,因此出现了合并提交问题
。
那么如果我们解决了这个问题呢?我们可以将本地机器的repo更新到原始的远程repo吗?这是可能的吗?
是的,这是可能的,你可以通过变基来实现。怎么做呢?
当你执行以下操作时:
git pull --rebase
Git会回滚(撤销)你所有的本地提交,拉取远程提交,然后在新拉取的远程提交之上重新播放你的本地提交。如果出现Git无法处理的冲突,你将有机会手动合并提交,然后简单地运行
git rebase --continue
继续重放你的本地提交。
请参阅此
博客文章以获取更多详细信息。
如果你想将你的分支合并到主分支上?
将git分支合并到主分支的最佳(也是最安全)方法