【Git】強制更新遠端分支進度到本地分支

【Git】強制更新遠端分支進度到本地分支

本篇重點

  • 強制更新遠端分支進度到本地分支的方法
  • git checkout -B 強制更新本地分支
  • 刪除並重新建立本地分支
  • git reset --hard 強制更新本地分支
  • 強制更新本地分支進度到遠端分支的方法
  • git push -f 強制更新遠端分支

在版本控制的過程中,有時會遇到本地分支的進度與遠端分支不同步的情況,而當遠端分支的進度才是正確版本時,需要強制更新本地分支來與遠端保持同步。以下提供三種方法來完成本地分支的強制更新!

強制更新遠端分支進度到本地分支

方法一:git checkout -B(推薦)

git
1
2
git fetch origin
git checkout -B local-branch origin/remote-branch
  1. 使用 git fetch 更新遠端分支的資訊。
  2. 接著執行 git checkout -B,該指令會執行以下操作:
    • 切換到指定的本地分支(若不存在,會自動建立)。
    • 強制將本地分支重置為遠端分支的最新進度。
  3. 不管當前位於哪個分支,都可以直接使用 git checkout -B 來切換並更新指定分支

範例

遠端分支為 origin/develop,本地分支為 develop

git
1
2
git fetch origin
git checkout -B develop origin/develop

方法二:刪除並重新建立分支

git
1
2
3
git fetch origin
git branch -D local-branch
git checkout -b local-branch origin/remote-branch
  1. 使用 git fetch 更新遠端分支的資訊。
  2. 使用 git branch -D 刪除本地分支。
  3. 透過 git checkout -b 重新建立一個與遠端分支同步的本地分支。

範例

遠端分支為 origin/develop,本地分支為 develop

git
1
2
3
4
git fetch origin
git checkout master
git branch -D develop
git checkout -b develop origin/develop

健忘筆記

  • 使用 git branch -D 刪除分支時,要先離開欲刪除的分支
  • git checkout -b 只能建立當前不存在的分支

方法三:git reset --hard

git
1
2
3
git fetch origin
git checkout local-branch
git reset --hard origin/remote-branch
  1. 使用 git fetch 更新遠端分支的資訊。
  2. 使用 git checkout -b 切換到欲更新的分支。
  3. 使用 git reset --hard 將當前的本地分支強制重置為遠端分支的最新進度。

範例

遠端分支為 origin/develop,本地分支為 develop

git
1
2
3
git fetch origin
git checkout develop
git reset --hard origin/develop

健忘筆記

git reset --hard 會丟失本地的變更,本地未提交的更改將會消失

強制更新本地分支進度到遠端分支

git push -f

git
1
2
git checkout local-branch
git push -f origin remote-branch
  1. 使用 git checkout -b 切換到要推送的分支。
  2. 使用 git push -f 強制更新遠端分支進度。

範例

遠端分支為 origin/develop,本地分支為 develop

git
1
2
git checkout develop
git push -f origin develop

健忘筆記

如果遠端分支的名稱和本地分支的名稱不同(遠端分支為 origin/develop,本地分支為 dev),可以使用 git push -f origin dev:develop 做更新

結論

我認為使用 git checkout -B 是最方便且直觀的方式,能快速完成本地分支與遠端分支的同步,且無需額外刪除或重建分支,適合大多數情況。不過,選擇哪種方式還是取決於當前分支的狀況與需求。需要特別注意的是,強制更新可能會無法復原,所以執行時要特別注意,確認無誤再更新,避免重要紀錄遺失。

延伸閱讀

【Git 官方文件】git checkout -B 介紹
【Git 官方文件】git push -f 介紹
【Git 官方文件】git reset –hard 介紹
【Git 官方文件】git fetch 介紹

作者

健忘工程師

發表於

2024-12-20

更新於

2024-12-20

許可協議


你可能也想看

【Git】了解 git config 設定
【Git、Hexo】deploy github 檔名大小寫問題
【Hexo】多台電腦佈署 GitHub page 的問題

評論

複製完成