Git 推送強制更改

Azhar Bashir Khan 2022年4月22日
Git 推送強制更改

在本文中,我們將看到如何將本地更改強制推送到 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 確保我們不會覆蓋其他隊友的更改。

相關文章 - Git Push