假設我是在分支上作業的唯一開發人員。我按下并立即看到我想要修復的錯誤訊息amend。我知道當其他人在作業時,它很容易造成很多麻煩。
但是,如果我100%確定沒有人觸及提交并且甚至沒有獲取更改?
uj5u.com熱心網友回復:
你提出了一個非常合理的問題。我們經常被告知不要更改我們已經推送到遠程的分支的歷史記錄。但這過于簡單化了。正如您正確推斷的那樣,問題是分支是否真正被遠程共享,而不僅僅是它是否已被推送。
近年來,Git 提供了一種方法來幫助穿上這根小針。在本地進行修改。要推動,你必須用力推動。好吧,當你這樣做時,使用--force-with-lease. 如果其他人實際上已經做了任何事情來更改此分支,這將阻止您推動。正如檔案所說:
如果遠程 ref 仍然指向您指定的提交,您可以確定沒有其他人對 ref 做任何事情。這就像在沒有顯式鎖定它的情況下對 ref 進行“租用”,并且只有在“租用”仍然有效時才會更新遠程 ref。
這并不能確保沒有其他人獲取分支(他們可能已經獲取,因為每次獲取都會獲取所有內容)或者沒有其他人已經制作了分支的本地副本。但它確實確保你是第一個在分支上做任何新事情的人,所以你所做的事情相對安全。結合常識,這是要走的路。一個典型的場景是你推送了分支,但沒有從中做 PR;你只是在推動作為備份。在這種情況下,這是完全安全的。
最后一句忠告:溝通無可替代。您可能正在與團隊其他成員一起使用 Slack 或類似工具;如果您作為 PR 推送并提交PR 以供審核,只需告訴您的團隊成員您在做什么,這樣分支就不會意外地從任何人之下更改出來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526279.html
