我创建了一个分支,对它进行了处理,将其与基本分支合并,现在想删除它。该分支也是在git远程服务器上创建的。git从远程git服务器中删除开发分支
现在,当我运行git branch -d分支时,它将它移除,然后我将它推开。但我仍然看到git远程服务器上的分支。
当我创建这个分支时,我看到类似的问题,并且我无法在远程git服务器上看到它。
我甚至可以从这个分支结账。
我在这里错过了什么吗?
我创建了一个分支,对它进行了处理,将其与基本分支合并,现在想删除它。该分支也是在git远程服务器上创建的。git从远程git服务器中删除开发分支
现在,当我运行git branch -d分支时,它将它移除,然后我将它推开。但我仍然看到git远程服务器上的分支。
当我创建这个分支时,我看到类似的问题,并且我无法在远程git服务器上看到它。
我甚至可以从这个分支结账。
我在这里错过了什么吗?
要删除的远程
git push remote :refs/heads/development
分支,可以用下面的神秘的命令删除远程分支:
git push origin :newfeature
您可能需要更新索引,所以跟踪分支被作为去除好:
git fetch origin --prune
为了扩大这些答案,每个分支基本上存在于三个地方:
origin/foo
origin/foo
本地副本(这是通过git fetch
更新)foo
(这是通过git merge origin/foo
以下git fetch
更新 - 或者更常见的是,两者都通过git pull
一起做)。git branch -d
删除这三个中的最后一个,即本地分支。 git branch -d -r
将删除您的远程分支的副本(或者您可以在删除本地分支后运行git remote prune origin
)。
要删除远程服务器上的分支,您必须使用git push
。旧的语法是git push origin :branchname
。这是因为语法是localref:remoteref
,例如,可以将机器上的本地分支推送到具有不同名称的远程分支,例如, git push origin localbranch:remotebranch
。如果您将localbranch
部分留空,您告诉git将任何东西都推送到远程分支,将其删除。
如果这很混乱,不要担心,git开发人员会同意你的意见。较新的版本有--delete
选项,因此git push origin --delete branchname
的功能与git push origin :branchname
的功能相同,但其目的更加清晰。
或等效:'git push remote:development' – Koraktor 2012-01-27 22:25:29
@Koraktor,是的,除非ref是别处,否则会这样做。 – 2012-01-27 22:26:33