在删除我的一个本地分支时,我误会了该命令,

git branch -D branch-name

git fetch -p

但是我已经看到它们是显示要删除的分支名称的列表。

我害怕看到删除的分支列表列表,以为可能是我执行了错误的命令,并意外删除了所有分支!

该命令(git fetch -p)的含义是什么。任何想法?

最佳答案

当获取远程存储库时,说“origin”,您将获得该远程存储库中存在的每个分支的远程分支。这些分支在本地存储为<remote>/<branch>

因此,假设原产地具有masterfeatureXfeatureY分支。然后,在获取本地存储库中的以下“远程分支”之后:origin/masterorigin/featureXorigin/featureY

现在,假设有人将featureX合并到master中,并从远程存储库中删除了功能分支。然后origin只有两个分支masterfeatureY

但是,获取时,三个远程分支都将仍然存在,包括在远程存储库中删除的分支。这是为了防止您意外丢失分支(想象有人不小心从远程删除了分支,那么从分支中获取数据的每个人也会丢失该分支,从而使其难以恢复)。

相反,您将需要告诉fetch命令修剪远程分支上不再存在的任何分支。因此,通过执行git fetch --prune origingit fetch -p,远程分支origin/featureX也将被删除。

顺便说一句。如果要从远程存储库中删除分支,则必须将“空”分支推入该分支,例如git push origin :branchname将在本地和远程本身上删除远程分支origin/branchname

关于git - 'git fetch -p'是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17832850/

10-13 08:41