如何在几次推送后重新定位git历史记录,然后推送更新的历史记录?

dou*_*gvk 3 git heroku git-rebase git-commit

我经常使用heroku,在项目结束时,我有几个小的提交来修复一些意想不到的错误.这导致了10个小的diff提交,我希望将它们重新组合成一个.问题是,历史已被推动.我如何协调这些事情?

小智 6

你想做的事情远不如人们的建议那么糟糕.确实,您不希望将推送到共享主分支的更改重新绑定,将发送到非共享/工作分支或非共享存储库的更改重新定义非常常见.许多人认为这比使用毫无意义的(并且可能是不完整的/非工作提交)使项目历史混乱更好.

问自己的问题是"任何人都会从我推动的分支机构中撤出".如果答案是否定的,那么这样做的问题只是理论上的,远远超过了混乱的历史问题.如果答案是肯定的,那么你当然不想这样做.但是,在这种情况下,您应该问自己是否可以从该存储库中的非共享分支进行部署.创建一个在制品测试分支,自由提交和变基.当你完成你的工作后,重新考虑你的内心并将这个好的提交推送到共享分支.


Fat*_*man 5

如果你确实想推送一个 rebased 分支(Git 默认会拒绝),你可以使用以下命令:

git push --force heroku master
Run Code Online (Sandbox Code Playgroud)

请注意,由于其他人已经提到的原因,这通常是一个非常糟糕的主意。