在 GitHub 上的合并拉取請求 (PR) 與遠程存盤庫 (origin) 上的 3 個提交之后,我執行了拉取以更新我的本地存盤庫 (main)。不知何故,事情出了問題,標準 CI 測驗在本地失敗。我使用重置本地存盤庫以忽略 3 個提交
git reset --hard SHA
并在PR之前重新獲得當地地位。然后,為了單獨檢查提交,我使用顯式執行拉取
git fetch origin
git merge SHA-commit1
git merge SHA-commit2
git merge SHA-commit3
并達到與遠程相同的(功能)狀態,所有 CI 測驗都正常。
僅出于完整性考慮:我在遠端有另一個 PR 提案,尚未合并(包含一些錯誤)。
雖然,我的本地和遠程存盤庫現在幾乎相同,但命令
git status origin
節目
On branch main
Your branch and 'origin/main' have diverged,
and have 3 and 2 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
我想知道是否有一種簡單的方法可以同步兩個存盤庫(我擔心建議的 git pull 會產生與以前相同的效果)。提前感謝您的任何提示。
uj5u.com熱心網友回復:
簡短的回答
要放棄任何本地更改并將沙箱置于與源相同的狀態,請運行:
git fetch
git reset --hard origin/main
(假設:您正在處理分支main。)
進一步的評論
當您不確定沙箱中發生了什么時,您應該使用一種工具來直觀地查看您的提交圖。有很多圖形化的,但這里有一個簡單的命令列:
git log --all --oneline --graph --decorate
關鍵是讓它顯示圖形、分支名稱(本地和遠程)以及所有分支。
此命令將準確地向您展示遠程和本地是如何分道揚鑣的。然后,您可以決定是否要保留本地更改并使用合并或變基,或者放棄本地更改并使用硬重置。
另一個注意事項:我真的不喜歡git pull. 事實上,我從不使用它。git fetch跟后面是一樣的git merge,但是不管好不好都會盲目的合并。我更喜歡 1) 獲取,2) 運行顯示圖表的 git log 命令,然后 3) 決定我是否真的想要合并或變基或重置或諸如此類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/443658.html
