3

我经常使用 heroku,在项目快结束时,我有几个小的提交来修复一些意想不到的错误。这导致了 10 个我希望将其变基为一个的小差异提交。问题是,历史已经被推送了。我该如何调和这些东西?

4

4 回答 4

6

你想做的远没有人们建议的那么糟糕。确实,您不想对推送到共享主分支的更改进行变基,将发送到非共享/工作分支或非共享存储库的更改变基是很常见的。许多人认为这是一种更好的做法,而不是用毫无意义的(并且可能是不完整/不工作的提交)来混乱项目历史。

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

于 2012-01-05T15:13:06.863 回答
5

如果你真的想推送一个重新建立的分支(Git 默认会拒绝),你可以使用以下命令:

git push --force heroku master

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

于 2012-01-03T23:44:07.760 回答
2

在你推送之后,你不应该重写历史(rebase)。如果其他人从该遥控器中拉出,而您变基并推送,您将遇到可怕的可怕合并冲突。

于 2012-01-03T23:17:25.890 回答
0

来自git-rebase手册页:对其他人基于工作的分支进行变基(或任何其他形式的重写)是一个坏主意;它下游的任何人都被迫手动修复他们的历史记录。

所以一般来说 - 在你推送任何东西后不要变基。

于 2012-01-03T23:16:27.110 回答