有沒有辦法讓git
發出警告,如果你試圖重新綁定已經被推送的分支? (即在你可能會「重寫歷史記錄」的情況下)。如果重新綁定被推送到遠程的分支,會發生警告?
(我知道在某些情況下,git
不會知道你是否在重寫歷史記錄,但通常是? )它會有這個信息。)
有沒有辦法讓git
發出警告,如果你試圖重新綁定已經被推送的分支? (即在你可能會「重寫歷史記錄」的情況下)。如果重新綁定被推送到遠程的分支,會發生警告?
(我知道在某些情況下,git
不會知道你是否在重寫歷史記錄,但通常是? )它會有這個信息。)
你可以使用git的pre-rebase
掛鉤在那種情況下產生警告或錯誤。 (the various githooks
is here的文檔。)sample pre-rebase
hook做了一些非常類似於你想要的東西,雖然(如http://git-scm.com/book/en/Customizing-Git-Git-Hooks指出),你需要將分支名稱next
更改爲你發佈的分支被調用的任何東西。
這可能也值得指出(因爲pmr在上面的評論中提到),如果你重寫了公共歷史,那麼試圖推動重寫的分支將不會成功 - 你會得到一個錯誤,以避免這個問題。
此外,你應該知道,你通常可以安全地完成:
git rebase <upstream-remote-tracking-branch>
例如,如果你在master
分公司工作,而其上游的遠程跟蹤分支origin/master
,則:
git rebase origin/master
...纔會考慮重新應用提交未包含在origin/master
,當你推到master
在遠程跟蹤分支更新origin
以及當您從origin
獲取。 (我之前說的「通常」的原因是,如果您使用多個遙控器,或者您以不同尋常的方式設置了遠程追蹤分支,則這會變得更加複雜。)
不是「推」重新啓動的分支無論如何都會被拒絕,並且總是被「強制」? – pmr
@pmr我不確定,我想這是可能的,但在進入這種情況之前我想知道! – mjs