2012-01-11 49 views
1

目前,已經衍合我的特性分支上的最新力作提交後強行推,我必須使用強制推送推更改遙控器。不幸的是,在這種情況下,可能會發生這種情況,我可能會失去從另一臺計算機上推出的提交。混帳:防止倉庫覆蓋的新變化

有沒有辦法通知Git只允許強行推如果我的本地庫的遠程分支在我的遠程存儲庫中的相應的分支相匹配?

更新:請不要反對強行推動的。

+0

我會考慮爲此使用一個單獨的遠程存儲庫,然後完全禁止在主庫中強制推送。 – ThiefMaster 2012-01-11 19:16:28

+0

對於你的工作流程還有點不清楚。你能否詳細說明一下「用戶A,用戶B是否這樣做,我希望發生這種情況」? – 2012-01-11 20:20:23

+0

重複[有沒有辦法配置git存儲庫拒絕'git push --force'?](http://stackoverflow.com/questions/1754491/is-there-a-way-to-configure-git-倉庫到拒收混帳推力)? – nulltoken 2012-01-11 21:05:45

回答

0

您可以這些更改下拉到當地分支機構,並推前解決任何問題(你可能需要,否則你的另一臺機器上解決對往後拉),或者你可以把具體的分支與: -符號。 git push origin [local-branch]:[remote-branch]
其中也就是刪除遠程分支機構的方式(即git push origin :branch將推動空分支到指定的遠程分支,從而將其刪除)。

這根本不應該觸及任何其他分支。 (如果分支有外部變化,注意在強制推送之前合併這些分支,例如分支到這個分支上)。

其實,現在我想想,更好的解決辦法是重訂基期分支推的力量,而不是推到當前分支到遙控器上的一個新的分支。 (如果不再需要,可能會刪除舊的非重新分支的分支),這將使破壞最少。

+0

感謝您對我的問題的第一個*答案*。從技術上講,可能有另一位開發人員在我從存儲庫中拉出並在強制推送更改之前推送了更改。從技術上講,Git可以檢查這一點,但不幸的是它沒有。每次rebase之後使用不同的分支對我來說是不可選的,因爲我可能每天都會發生多次rebase。 – Mot 2012-02-10 05:37:38