刪除遠程分支命令:git
1 |
$ git push origin :br03 |
或者:github
1 |
$ git push origin --delete br03 |
另外一個用戶使用git fetch
並不能同步獲取到br03分支被刪除。緩存
1 |
$ git fetch |
此命令沒有更新的顯示,說明並沒有刪除的信息。
但執行git pull
時,報錯。fetch
1 2 3 |
$ git pull Your configuration specifies to merge with the ref 'br03' from the remote, but no such ref was fetched. |
這確定是執行git fetch時,報錯。code
1 2 3 |
$ git fetch origin br03 fatal: Couldn't find remote ref br03 fatal: The remote end hung up unexpectedly |
但檢查分支時,發現origin/br03還存在。ci
1 2 3 4 5 6 7 8 |
$ git br -a br01 br02 * br03 master remotes/origin/br01-remote remotes/origin/br03 remotes/origin/master |
這說明,remotes/origin/*
這些遠程跟蹤分支,僅僅是遠程分支的一個緩存,而且,不能經過git fetch
命令獲取到分支刪除的更新。rem
執行命令同步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ git remote show origin * remote origin Fetch URL: git@github0123:jeremy0123/fetch.git Push URL: git@github0123:jeremy0123/fetch.git HEAD branch: master Remote branches: br01-remote tracked br02 tracked br03-remote tracked master tracked refs/remotes/origin/br03 stale (use 'git remote prune' to remove) Local branches configured for 'git pull': br01 merges with remote br01-remote br03 merges with remote br03 master merges with remote master Local refs configured for 'git push': br02 pushes to br02 (up to date) master pushes to master (local out of date) |
發現refs/remotes/origin/br03
狀態是stale(陳舊的),而且後面有命令提示。it
1 2 3 4 |
$ git remote prune origin Pruning origin URL: git@github0123:jeremy0123/fetch.git * [pruned] origin/br03 |
或者執行io
1 2 3 4 5 6 7 |
$ git fetch -p remote: Counting objects: 5, done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From git@github0123:jeremy0123/fetch.git 04a6837..d49d143 master -> origin/master x [deleted] (none) -> origin/br03 |
在執行fetch以後,刪除遠程不存在的遠程跟蹤分支。
~~ EOF ~~