2017-08-29 103 views
0

如果我想編輯已經推送到遠程的過去提交,我如何測試我是否被允許強制推送而不實際更改任何內容?我如何測試是否允許強制推送?

要編輯過去的提交,我通常使用git rebase -i HEAD~N,然後將pick更改爲edit我想進行更改。 如果我這樣做,然後意識到我不允許強制推送,我需要重置我的工作空間(我想避免,因爲我對提交所做的更改將會丟失)。

我知道在已經推送提交的情況下執行此操作可能是不好的做法。

有沒有辦法在我實際進行rebase之前進行測試?

+1

爲什麼「我對提交所做的更改」會丟失?您可以在重置之前創建一個指向它的分支。 – jingx

+0

是的,這似乎工作,謝謝 – rlsw

回答

2

唯一完全可靠的測試是否具有相應的權限X(對於某些任意X,往往甚至沒有Git的相關)是試圖做X,看看它是否成功。 「測試是否允許X,然後做X」的根本問題是答案可能在測試和嘗試之間變化。 (有些系統支持要求,允許先可靠,但大多數人並不:最讓你通過你得到它的時間到期的答案)

也就是說,Git的力量推權限由確定其他 Git,除了嘗試以外,沒有辦法問它!你可以問其他Git最接近的問題是以其他系統特定的方式詢問其他系統其Git,其中Git是。你最好的選擇可能是創建一個臨時分支,強制推送它,然後刪除它。如果強制推送步驟成功,那麼你知道你至少有權力在那一刻強制推送到那一個分支。

由於像GitHub這樣的常用主機站點允許管理員「鎖定」或「保護」某些特定的分支。這些工作的細節以及誰擁有什麼權限,取決於那些託管站點。 Here is the GitHub page on their branch restriction options.

相關問題