如果重新定位已被推送到远程的分支,请发出警告?

时间:2012-11-05 10:29:25

标签: git warnings rebase

如果您尝试重新绑定已经被推送的分支,有没有办法让git警告您? (即在您可能“重写历史”的情况下。)

(我知道在某些情况下git不会知道你是否在改写历史记录,但通常(通常是?)它会有这些信息。)

1 个答案:

答案 0 :(得分:4)

您可以使用git的pre-rebase挂钩在该情况下产生警告或错误。 (the various githooks is here的文档。)sample pre-rebase hook执行的操作非常类似于您想要的内容,尽管(如http://git-scm.com/book/en/Customizing-Git-Git-Hooks所示)您需要更改分支名称{{1}无论你发布的分支是什么。

可能还值得指出(正如pmr在上面的评论中提到的)如果你重写了公共历史,那么试图推动重写的分支将不会成功 - 你会得到一个错误来避免只是这个问题。

此外,你应该知道你通常可以安全地做到:

next

例如,如果您正在使用git rebase <upstream-remote-tracking-branch> 分支,并且其上游远程跟踪分支为master,则:

origin/master

...只会考虑重新应用git rebase origin/master 中未包含的提交,并且当您在{{origin/master中推送时,会更新远程跟踪分支1}}以及从master获取的时间。 (我上面说“通常”的原因是,如果您使用多个遥控器,或者您以不寻常的方式设置远程跟踪分支,这会更复杂。)