我有一个本地分支,说hotfix 。 我把它放在GitHub上使用
$ git push -u origin hotfix然后在合并分支后,我想删除它。 所以我输入
$ git branch -d hotfix它会在本地删除分支。 但是,远程分支仍在GitHub上。 当然,当我看到我的远程分支时,
$ git branch -r origin/HEAD -> origin/master origin/hotfix origin/masterhotfix仍在那里。 那么我试试吧
$ git branch -r -d origin/hotfix $ git branch -r origin/HEAD -> origin/master origin/master正如预期的那样, hotfix已经消失了。
但后来我去GitHub看看我的分支机构,还有hotfix ! 如何通过命令行从GitHub中删除远程hotfix ,而无需在浏览器中导航到GitHub并使用网站UI删除它?
I have a local branch, say hotfix. I put it up on GitHub using
$ git push -u origin hotfixThen after merging the branch, I want to delete it. So I type
$ git branch -d hotfixwhich deletes the branch locally. However, the remote branch is still on GitHub. Of course when I look at my remote branches,
$ git branch -r origin/HEAD -> origin/master origin/hotfix origin/masterhotfix is still there. So then I try
$ git branch -r -d origin/hotfix $ git branch -r origin/HEAD -> origin/master origin/masterand hotfix is gone, as expected.
But then I go to GitHub and look at my branches, and hotfix is still there! How can I delete the remote hotfix from GitHub via the command line, without having to navigate to GitHub in my browser and delete it using the Website UI?
最满意答案
你需要推送删除:
git push origin --delete hotfix(任何git branch命令只对你的本地仓库有影响,而不是GitHub远程仓库)
有关详细信息,请参阅“ 如何在本地和远程删除Git分支? ”。
git branch -d -r只删除远程跟踪分支 ,即本地仓库的remotes/origin命名空间中存在的分支。 GitHub(实际的远程仓库)永远不会被通知。
您已“成功”删除的是“远程跟踪分支”,它位于您的本地仓库中,用于记录您从该分支的上游仓库获取的最后一个SHA1:“远程跟踪分支”是什么。
正确的顺序是:
git push origin --delete hotfix git remote update --prune origin这将删除GitHub仓库上的hotfix分支,然后删除您的仓库中任何过时的远程跟踪分支。
You need to push that deletion:
git push origin --delete hotfix(any git branch command would only have an effect on your local repo, not the GitHub remote one)
See more at "How to delete a Git branch both locally and remotely?".
A git branch -d -r only deletes a remote tracking branch, that is branches existing in the remotes/origin namespace of your local repo. GitHub (the actual remote repo) is never notified.
What you have "successfully" deleted is the "remote tracking branch" which is in your local repo and is meant to record the last SHA1 that you fetched from the upstream repo for that branch: that what a "remote tracking branch" is.
The correct sequence is:
git push origin --delete hotfix git remote update --prune originThat will delete the hotfix branch on the GitHub repo, and then delete any obsolete remote tracking branch in your repo.
更多推荐
发布评论