在删除我的一个本地分支时,我误会了该命令,
git branch -D branch-name
git fetch -p
但是我已经看到它们是显示要删除的分支名称的列表。
我害怕看到删除的分支列表列表,以为可能是我执行了错误的命令,并意外删除了所有分支!
该命令(
git fetch -p
)的含义是什么。任何想法? 最佳答案
当获取远程存储库时,说“origin”,您将获得该远程存储库中存在的每个分支的远程分支。这些分支在本地存储为<remote>/<branch>
。
因此,假设原产地具有master
,featureX
和featureY
分支。然后,在获取本地存储库中的以下“远程分支”之后:origin/master
,origin/featureX
和origin/featureY
。
现在,假设有人将featureX
合并到master中,并从远程存储库中删除了功能分支。然后origin只有两个分支master
和featureY
。
但是,获取时,三个远程分支都将仍然存在,包括在远程存储库中删除的分支。这是为了防止您意外丢失分支(想象有人不小心从远程删除了分支,那么从分支中获取数据的每个人也会丢失该分支,从而使其难以恢复)。
相反,您将需要告诉fetch命令修剪远程分支上不再存在的任何分支。因此,通过执行git fetch --prune origin
或git fetch -p
,远程分支origin/featureX
也将被删除。
顺便说一句。如果要从远程存储库中删除分支,则必须将“空”分支推入该分支,例如git push origin :branchname
将在本地和远程本身上删除远程分支origin/branchname
。
关于git - 'git fetch -p'是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17832850/