Git分支問題(git remote prune)

問題描述 :

查看所有分支使用命令git branch --all

  feature-tmp
  feature-tmp-no-ad
  feature-tools
  feature-tools-dev
  feature-trend
  feature-trend-paint
  feature-wangcai
  feature-wangcai-no-ad
  remotes/origin/HEAD -> origin/feature-release
  remotes/origin/cherry-pick-3afe883a
  remotes/origin/dev-hhz
  remotes/origin/feature-add-newvideo
  remotes/origin/feature-add-video
  remotes/origin/feature-buy-lottery
  remotes/origin/feature-changepassword
  remotes/origin/feature-comment
  remotes/origin/feature-dev-bussinus

發現當前遠程分支未包含:

  remotes/origin/feature-buy-lottery
  remotes/origin/feature-changepassword
  remotes/origin/feature-comment
  remotes/origin/feature-dev-bussinus

這四個分支已經從遠程分支中刪除 但是 本地分支並不知道當前這幾個遠程分支是否被刪除 下面我們可以使用命令:

git remote show origin

看到當前我們本地代碼庫所有遠程分支:

    feature-tools                                    tracked
    feature-tools-dev                                tracked
    feature-wangcai                                  tracked
    feature-wangcai-no-ad                            tracked
    master                                           tracked
    refs/remotes/origin/cherry-pick-3afe883a         stale (use 'git remote prune' to remove)
    refs/remotes/origin/dev-hhz                      stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature-add-newvideo         stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature-add-video            stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature-buy-lottery          stale (use 'git remote prune' to remove)

現在我們可以看到 :

stale (use ‘git remote prune’ to remove)

這樣的標註 這代表我們遠程已經刪除當前這條分枝 但是本地代碼庫並不知道,所以我們要進行的操作就是按照提示 刪除當前這些無用的未被tracked 的遠程分枝。
使用:

git remote prune origin

就會出現如下結果:

Pruning origin
URL: [email protected]:root/wangcai-android-root-project.git
 * [pruned] origin/cherry-pick-3afe883a
 * [pruned] origin/dev-hhz
 * [pruned] origin/feature-add-newvideo
 * [pruned] origin/feature-add-video
 * [pruned] origin/feature-buy-lottery
 * [pruned] origin/feature-changepassword
 * [pruned] origin/feature-comment

好了,目前我們工作基本完活兒。
現在使用:

git fetch
git remote show origin
這兩條命令可以看到我們的本地代碼倉庫乾淨啦哈哈。

分析一下出現原因:

之前從遠程庫拉取過所有分枝,
可能之後被遠程的某些分支被其他人在GitLab刪除了,
你用 Git branch -a 也是不能看出它們是否已被刪除的 
所以在本地會有很多 無用的  沒有被tracked 的 分支 ,
用 it remote show origin   命令可以看到 
這些分枝會被標記成 stale (use 'git remote prune' to remove)。
所以就出現了今天我們說到的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章