Git 推送強制更改
Azhar Bashir Khan
2022年4月22日
在本文中,我們將看到如何將本地更改強制推送到 Git 中的遠端倉庫中。
Git 只允許將本地更改推送到遠端倉庫,這些更改是遠端倉庫中更改的後代。
在某些情況下,我們可能希望推送並非如此的更改(即)可能先於遠端倉庫中的更改的更改。
在這種情況下,我們需要使用帶有 --force
選項的 git push
命令。
我們現在將用一個例子來說明這一點。
在 Git 中使用 git push --force
強制推送遠端倉庫中的本地更改
有時在協作開發環境中工作時,我們會遇到在遠端倉庫中推送一些更改的情況。
現在,我們決定這些更改不再相關,我們希望將新的本地更改推送到遠端倉庫。
此外,其他一些隊友可能已經拉入了我們之前推送的那些遠端倉庫更改;並且可能在它們之上工作過。隨後,他們可能已將更改推送到遠端倉庫。
Git 通常要求我們首先從遠端倉庫中拉取可能已由其他隊友推送的更改,然後再將新的本地更改推送到其中。
因此,在這種情況下,我們需要使用帶有 --force
選項的 git push
命令。該命令的語法是 git push origin <branch_name> --force
假設,我們有一個名為 main
的分支。然後,我們將執行以下操作來強制推動更改。
$ git push origin main --force
警告:這會覆蓋自上次推送以來可能已經發生在遠端倉庫上的更改。
因此,你的隊友可能已經在遠端倉庫上所做的更改將被覆蓋。
git push
命令還有另一個選項。 --force-with-lease
。將此選項與 git push
一起使用時,將列印一條錯誤訊息,如果遠端倉庫上已經有一些更改推送,Git 將不會推送更改。
這個選項 --force-with-lease
確保我們不會覆蓋其他隊友的更改。