问题描述
git branch -rd remote_name/branch_name删除后提示成功,使用git branch -r得到远程分支列表,没有了分支remote_name/branch_name,再使用git pull发现又从远端获得了分支branch_name,那git branch -rd remote_name/branch_name删除的是什么?
这里给出我的git版本:git versiongit version 2.7.0.windows.1
问题解答
回答1:git branch -r 操作的是 remote-tracking branch 这个branch依然是你本地的,不过它不能被编辑。譬如当你从一个remote上fetch时,如果在此之前其他人在remote上提交了一个新的分支somebranch,你可能会看到如下的信息:
git fetch originremote: Counting objects: 1, done.remote: Compressing objects: 100% (1/1), done.remote: Total 1 (delta 0), reused 1 (delta 0)Unpacking objects: 100% (1/1), done.[new branch] somebranch -> origin/somebranch
此时你本地多了一个origin/somebranch这个就是一个remote-tracking branch, 然后你可以从中checkout一个出来做你的事情:
git checkout -b sbranch origin/somebranch
删除远程分支只能通过git push的方式。

