0

我使用分支作为我的 WIP 的备份。但回到它,我想得到我的git diff支持,这样我就可以在继续工作的同时再次了解变化。

所以我通常会重置我的WIP-commit ( git reset HEAD^) 并重新开始工作。但是当我需要再次提交(最终提交或WIP-commit)并将其推送到远程源时,我想知道这个新的发散提交是否会对拉同一个分支的协作者造成问题

我知道他们会做出改变并做出承诺。但是,如果他们只是拉动分支但他们从不碰它,结果他们拉动了第二个新的分歧 WIP-commit 怎么办?

同意不碰合作者的分支是否足够安全?

4

1 回答 1

0

如果你的最后一次提交没有被推送,那么git reset HEAD^就不会搞砸任何事情。但是如果你已经推送了,我建议不要这样做,即使其他合作者没有修改那个分支。假设您进行了初始提交A并推送它,然后git reset HEAD^进行提交B。当你尝试推送它时,你会得到一个错误,因为你B的父级与 git 相同A,因此 git 无法在服务器上进行快进合并。错误消息将建议您git pull在这种情况下执行。但是一旦你这样做了,你将有一个新的合并提交,它合并AB.

现在,你可以通过强制 push 来解决这个问题(从而吹走A),但这只有在你 push 后没有人从 repo 中拉出的情况下才有效A。否则,下次他们拉取时,他们将合并AB在他们的本地机器上,并将该合并推回服务器。

长话短说:永远不要重写已经推送的历史。

于 2016-01-28T13:07:03.260 回答