日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git--- 删除不存在对应远程分支的本地分支

發布時間:2024/2/28 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git--- 删除不存在对应远程分支的本地分支 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述是:我在遠程上建立了一個分支feature,后來leader覺得不合理,就把遠程feature分支刪除,并又建立了一個feature分支,這導致我在sourceTree上無法pull到最新的版本。

也假設出現這樣的情況:

  • 我創建了本地分支b1并pull到遠程分支?origin/b1;
  • 其他人在本地使用fetch或pull創建了本地的b1分支;
  • 我刪除了?origin/b1?遠程分支;
  • 其他人再次執行fetch或者pull并不會刪除這個他們本地的?b1?分支,運行?git branch -a?也不能看出這個branch被刪除了,如何處理?
  • [root@test01 H2]# git remote show origin
    * 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--- 删除不存在对应远程分支的本地分支的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。