我有一个git repo,我使用两个不同的遥控器:
$ git remote -v
origin http://user@10.0.1.1/git/repo.git (fetch)
origin http://user@10.0.1.1/git/repo.git (push)
origin-vpn http://user@10.0.2.1/git/repo.git (fetch)
origin-vpn http://user@10.0.2.1/git/repo.git (push)
这是相同的上游存储库,但我必须根据我的位置通过不同的端点访问它。
现在我不经常使用origin-vpn
,因为我不能正常使用它,它有时会落后。但当我看到我的git log
时,我看到所有分支和标签都来自两个来源。
我希望清除origin-vpn
中的所有数据,就像我从未从中获取数据一样。我需要remote
存在,因为我可能会不时使用它,但我不希望它出现refs
。
我该怎么做?如果没有相关命令,是否足够安全再次使用git remote delete
和git remote add
并删除所有这些引用?
编辑:这就是我看到我的git日志的方式:
alias gitlog='git log --color --graph --pretty=format:'\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
答案 0 :(得分:3)
要从本地存储库中删除远程引用,您需要按照建议和git remote rm origin-vpn
进行操作。这将只删除远程及其所有引用的本地副本以及配置(上游跟踪分支)。
此时,我会立即添加遥控器但不取回它。这将使vpn远程保持为可能的推/拉/提取位置(特别是通过名称),但不会使其任何引用堵塞您的本地仓库。
只要你没有将上游跟踪分支设置为vpn远程,标准的pull / fetch应该只下拉原始远程引用refs而不是vpn。
答案 1 :(得分:1)
作为另一种选择:既然你声明你只从origin-vpn
拉出来,你可能根本不需要为它设置一个遥控器,以防你不知道。
从功能上讲,遥控器实际上并不仅仅是URL的别名,您只需从URL中提取,而无需为其设置遥控器:
git pull http://user@10.0.2.1/git/repo.git master
如果您实际上计划在每次使用时删除并重新创建origin-vpn
遥控器,那么这似乎更简单。