Von*_*onC 644
如Yoshua Wuyts的回答所述,使用git branch
:
git branch --unset-upstream
Run Code Online (Sandbox Code Playgroud)
您不必删除本地分支.
只需删除远程跟踪分支:
git branch -d -r origin/<remote branch name>
Run Code Online (Sandbox Code Playgroud)
(这将不会删除该分支上的远程回购!)
请参阅" 很难理解git-fetch "
没有本地跟踪分支的概念,只有远程跟踪分支.
所以-r, --remotes
是一个远程跟踪分行origin/master
的master
回购
正如Dobes Vandermeer的回答中所提到的,您还需要重置与本地分支关联的配置:
git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge
Run Code Online (Sandbox Code Playgroud)
删除上游信息
origin
.
如果未指定分支,则默认为当前分支.
(git 1.8 +,2012年10月,由CarlosMartínNieto 承诺b84869e (<branchname>
))
这将使任何推/拉完全没有意识到carlosmn
.
Yos*_*yts 185
要删除当前分支的上游,请执行以下操作:
$ git branch --unset-upstream
Run Code Online (Sandbox Code Playgroud)
这适用于Git v.1.8.0或更高版本.(资料来源:1.7.9 ref,1.8.0 ref)
Dob*_*eer 106
要删除本地和远程分支运行之间的关联:
git config --unset branch.<local-branch-name>.remote
git config --unset branch.<local-branch-name>.merge
Run Code Online (Sandbox Code Playgroud)
如果您不需要,可以选择删除本地分支:
git branch -d <branch>
Run Code Online (Sandbox Code Playgroud)
这不会删除远程分支.
Jac*_*ter 32
最简单的方法是编辑 .git/config
这是一个示例文件
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = git@example.com:repo-name
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "test1"]
remote = origin
merge = refs/heads/test1
[branch "master"]
remote = origin
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
删除线merge = refs/heads/test1
的test1
分支部分
Akh*_*rou 22
如果您正在谈论配置为-to 和 的本地分支(例如main
, )dev
push
pull
-from 上游 [远程分支] 的
\xe2\x9d\xaf git branch --unset-upstream <LOCALBRANCH>\n
Run Code Online (Sandbox Code Playgroud)\n例如:
\n\xe2\x9d\xaf git branch --unset-upstream dev\n\xe2\x9d\xaf git branch --unset-upstream feature-x\n
Run Code Online (Sandbox Code Playgroud)\n如果您正在谈论显示在您(和\n目录)中的名称分支<REMOTE>/<BRANCH>
(例如origin/main
, \n目录),向您显示远程分支的状态,那么您可以通过覆盖来停止“跟踪”(更新)它当前持有的远程跟踪分支列表以及您自己的新自定义列表:origin/dev
git log
.git/refs/remotes/<REMOTE>/
\xe2\x9d\xaf git remote set-branches <REMOTE> [<REMOTE-BRANCH> \xe2\x80\xa6]\n
Run Code Online (Sandbox Code Playgroud)\n另外,如果您不想再在您的git log
(和.git/refs/remotes/<REMOTE>/
目录)中看到这些远程跟踪分支,那么您可以使用以下命令删除它们:
\xe2\x9d\xaf git branch --delete --remotes -- <REMOTE>/<BRANCH>\nDeleted remote-tracking branch <REMOTE>/<BRANCH> (was 1f1a655).\n
Run Code Online (Sandbox Code Playgroud)\n例如:
\n# keep tracking `origin/main`, and `origin/dev`,\n# untrack all other `origin/*` remote branches\n\xe2\x9d\xaf git remote set-branches origin main dev\n\n# delete remote branches previously tracked, from the\n# `.git/refs/remotes/<REMOTE>/` directory\n\xe2\x9d\xaf git branch --delete --remotes -- origin/feature-x origin/feature-y\n\xe2\x9d\xaf git branch --delete --remotes -- origin/hotfix-z\n
Run Code Online (Sandbox Code Playgroud)\n最后,如果有远程分支已从远程存储库本身中删除(已变得过时),并且您想要更新本地存储库以反映这一点,那么您可以通过删除(修剪)它们:
\n# automatically\n\xe2\x9d\xaf git remote prune <REMOTE>\nPruning <REMOTE>\nURL: <REMOTEURL>\n * [pruned] <REMOTE>/<BRANCH>\n
Run Code Online (Sandbox Code Playgroud)\n...或者
\n# manually\n\xe2\x9d\xaf git branch --delete --remotes -- <REMOTE>/<BRANCH>\nDeleted remote-tracking branch <REMOTE>/<BRANCH> (was 1f1a655).\n
Run Code Online (Sandbox Code Playgroud)\n您可以通过以下方式检查跟踪状态:
\n\xe2\x9d\xaf git remote show <REMOTE>\n
Run Code Online (Sandbox Code Playgroud)\n例如:
\n\xe2\x9d\xaf git remote show origin\n* remote origin\n Fetch URL: /Users/johndoe/bare-remote\n Push URL: /Users/johndoe/bare-remote\n HEAD branch: ant\n Remote branches:\n brooms tracked\n bull tracked\n cat tracked\n deer tracked\n dog tracked\n foxy tracked\n john tracked\n master tracked\n new tracked\n tim tracked\n timothy tracked\n Local branches configured for 'git pull':\n ant merges with remote ant\n master merges with remote master\n Local refs configured for 'git push':\n ant pushes to ant (up to date)\n master pushes to master (up to date)\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n
\n- \n
git 远程(1):
\n\n
set-branches
:\n更改指定远程跟踪的分支列表。这可用于在远程初始设置后跟踪可用远程分支的子集。\n
prune
:\n删除与 关联的陈旧引用。默认情况下,过时的远程跟踪分支将被删除,但根据全局配置和远程配置,我们甚至可能会删除尚未推送到那里的本地标签。\n
show
:\n提供有关远程的一些信息。- \n
git 分支(1):
\n\n
--unset-upstream
:\n删除 的上游信息。\n
--delete
:\n删除一个分支。\n
--remotes
:\n列出或删除(如果与 -d 一起使用)远程跟踪分支。
Cle*_*usW 10
您可以使用删除远程跟踪分支
git branch -d -r origin/<remote branch name>
Run Code Online (Sandbox Code Playgroud)
正如VonC上面提到的那样.但是,如果你保留分支的本地副本,git push
仍会尝试推送该分支(这可能会给你一个非快进错误,就像它为ruffin做的那样).这是因为配置push.default
默认为matching
:
匹配 - 推送所有匹配的分支.两端具有相同名称的所有分支都被认为是匹配的.这是默认值.
(见http://git-scm.com/docs/git-config下push.default
)
当您删除远程跟踪分支时,可能不是您想要的,您可以设置push.default
为upstream
(或者tracking
如果您有git <1.7.4.3)
上游 - 将当前分支推送到其上游分支.
运用
git config push.default upstream
Run Code Online (Sandbox Code Playgroud)
并且git将停止尝试推送已经"停止跟踪"的分支.
注意:更简单的解决方案是将本地分支重命名为其他分支.这也将消除一些混淆的可能性.
归档时间: |
|
查看次数: |
195252 次 |
最近记录: |