git--- 删除不存在对应远程分支的本地分支
問題描述是:我在遠程上建立了一個分支feature,后來leader覺得不合理,就把遠程feature分支刪除,并又建立了一個feature分支,這導致我在sourceTree上無法pull到最新的版本。
也假設出現這樣的情況:
* remote origin
? Fetch URL: git@hdt.gitlab.com:engine/H2.git
? Push ?URL: git@hdt.gitlab.com:engine/H2.git
? HEAD branch: master
? Remote branches:
? ? H2-Doc ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tracked
? ? develop ? ? ? ? ? ? ? ? ? ? ? ? ? ? tracked
? ? feature/test ? ? ? ? ? ? ? ? ? ? ? ?new (next fetch will store in remotes/origin)
? ? feature/testpush ? ? ? ? ? ? ? ? ? ?new (next fetch will store in remotes/origin)
? ? feature_ai ? ? ? ? ? ? ? ? ? ? ? ? ?tracked
? ? feature_lyp ? ? ? ? ? ? ? ? ? ? ? ? tracked
? ? master ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tracked
? ? refs/remotes/origin/13123123 ? ? ? ?stale (use 'git remote prune' to remove)
? ? refs/remotes/origin/LogModModify ? ?stale (use 'git remote prune' to remove)
? ? refs/remotes/origin/RequestModVideo stale (use 'git remote prune' to remove)
? ? refs/remotes/origin/feature ? ? ? ? stale (use 'git remote prune' to remove)
? ? refs/remotes/origin/test-1111 ? ? ? stale (use 'git remote prune' to remove)
? ? refs/remotes/origin/test/test ? ? ? stale (use 'git remote prune' to remove)
? ? video ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tracked
? Local branches configured for 'git pull':
? ? develop merges with remote develop
? ? master ?merges with remote master
? Local refs configured for 'git push':
? ? develop pushes to develop (local out of date)
? ? master ?pushes to master ?(up to date)
這時候能夠看到feature是stale的,使用?git remote prune origin?可以將其從本地版本庫中去除。
[root@test01 H2]# git remote prune origin
Pruning origin
URL: git@hdt.gitlab.com:engine/H2.git
?* [pruned] origin/13123123
?* [pruned] origin/LogModModify
?* [pruned] origin/RequestModVideo
?* [pruned] origin/feature
?* [pruned] origin/test-1111
?* [pruned] origin/test/test
更簡單的方法是使用這個命令,它在fetch之后刪除掉沒有與遠程分支對應的本地分支:
git fetch -p
查看全部分支
[root@test01 H2]# git branch -a
* develop
? master
? remotes/origin/H2-Doc
? remotes/origin/HEAD -> origin/master
? remotes/origin/develop
? remotes/origin/feature_ai
? remotes/origin/feature_lyp
? remotes/origin/master
? remotes/origin/video
可以看到feature分支已經被刪除掉了
總結
以上是生活随笔為你收集整理的git--- 删除不存在对应远程分支的本地分支的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: svn cleanup failed–p
- 下一篇: ../configure: /bin/s