Git Push --force-with-lease 與 Git Push --force
本文將討論 git push --force-with-lease
和 git push --force
命令之間的區別。通常,我們使用 git push
命令將本地更改釋出到遠端倉庫。
讓我們繼續檢查這些命令。
git push --force
命令
將本地更改釋出到遠端倉庫時,我們執行:
$ git push origin
但是,在多個開發人員共享我們的遠端倉庫並將他們的更改釋出到遠端倉庫的情況下,Git 可以拒絕推送。
為了強制 Git 釋出我們的提交,我們在我們的 git push
命令中新增 --force
標誌,如下所示。
$ git push --force origin
使用此命令的缺點是它不考慮其他開發人員推送到遠端倉庫的更改。該命令將根據本地倉庫的狀態覆蓋倉庫。
這可能很危險,因為它會打亂我們的專案時間表。如果你想將更改推送到遠端倉庫並保留其他開發人員所做的更改,你可以這樣做。
git push --force-with-lease
命令
當多個開發人員共享遠端倉庫時,此命令會派上用場。我們在釋出更改時使用它,以避免丟棄其他開發人員推送的更改。
$ git push --force-with-lease origin
讓我們看一個例子。這是我們遠端倉庫的當前狀態。
我們將對 README.md
檔案進行一些更改,並在 GitHub 上提交更改。請注意概述的提交 ID 097ab8b
。
這是它現在的樣子。
注意提交 ID ba29c53
。
我們現在將在我們的計算機上開啟 README.md
檔案,進行更多編輯,提交更改,然後嘗試 git push
。
由於提交歷史不同,Git 拒絕了我們的推送嘗試。我們可以執行 git push --force
命令,但這將丟棄我們在 GitHub 中所做的更改。
我們可以執行 git push --force-with-lease
,如下所示。
$ git push --force-with-lease
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 314 bytes | 314.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/Wachira11ke/Delftscopetech.git
+ b7b8e6a...8ddd086 main -> main (forced update)
git push --force-with-lease
和 git push --force
之間的區別是結果。使用 lease
推送更改有助於我們避免丟棄其他開發人員推送的更改。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn