詳細版本見個人博客: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遠程分支的刪除與同步