如果您尝试重新绑定已经被推送的分支,有没有办法让git
警告您? (即在您可能“重写历史”的情况下。)
(我知道在某些情况下git
不会知道你是否在改写历史记录,但通常(通常是?)它会有这些信息。)
答案 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
获取的时间。 (我上面说“通常”的原因是,如果您使用多个遥控器,或者您以不寻常的方式设置远程跟踪分支,这会更复杂。)