Git遠程分支的刪除與同步

詳細版本見個人博客:Git遠程分支的刪除與同步


本文主要介紹Git同步遠程已刪除的分支的方法。

一、刪除遠程分支命令

刪除遠程分支命令:

git push origin :readme

或者:

git push origin --delete readme

二、同步本地的遠程分支

關鍵問題:另一個用戶使用git fetch並不能同步獲取到readme分支被刪除。

git fetch

此命令沒有更新的顯示,說明並無刪除的信息。

然後執行git pull時,報錯:

Your configuration specifies to merge with the ref 'refs/heads/readme'
from the remote, but no such ref was fetched.

這肯定是執行git fetch時,報錯。

git fetch origin readme
fatal: Couldn't find remote ref readme

但檢查分支時,發現origin/readme還存在。

git branch -a
  dev
  master
* readme
  remotes/origin/HEAD -> origin/master
  remotes/origin/add-license-1
  remotes/origin/dev
  remotes/origin/master
  remotes/origin/readme

這說明,remotes/origin/*這些遠程跟蹤分支,僅僅是遠程分支的一個緩存,並且,不能通過git fetch命令獲取到分支刪除的更新。

執行命令

git remote show origin
* remote origin
  Fetch URL: [email protected]:dta0502/Data-Analysis-In-Action.git
  Push  URL: [email protected]:dta0502/Data-Analysis-In-Action.git
  HEAD branch: master
  Remote branches:
    add-license-1              tracked
    dev                        tracked
    master                     tracked
    refs/remotes/origin/readme stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    dev    merges with remote dev
    master merges with remote master
    readme merges with remote readme
  Local refs configured for 'git push':
    dev    pushes to dev    (up to date)
    master pushes to master (up to date)

發現refs/remotes/origin/readme狀態是stale(陳舊的),並且後面有命令提示。

git remote prune origin
Pruning origin
URL: [email protected]:dta0502/Data-Analysis-In-Action.git
 * [pruned] origin/readme

或者執行

git fetch -p

在執行fetch之後,刪除遠程不存在的遠程跟蹤分支。

三、刪除本地多餘分支

git checkout master
git branch -d readme

詳細版本見個人博客:Git遠程分支的刪除與同步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章