无法改变git远程源

时间:2014-01-17 20:57:24

标签: git

有人可以解释为什么git remote origin无法从livepost.git更改为europeanexplorer.git吗?我尝试按照说明进行操作,但文档说明error: Could not remove config section 'remote.origin'表示该文件不存在,这似乎不是这种情况。

$ git remote -v
origin  https://github.com/harrisongill/livepost.git (fetch)
origin  https://github.com/harrisongill/livepost.git (push)
$ git remote rm origin
error: Could not remove config section 'remote.origin'
$ git remote set-url origin https://github.com/harrisongill/europeanexplorer.git
$ git remote -v
origin  https://github.com/harrisongill/livepost.git (fetch)
origin  https://github.com/harrisongill/livepost.git (push)
origin  https://github.com/harrisongill/europeanexplorer.git (push)
$ git remote rm origin
$ git remote -v
origin  https://github.com/harrisongill/livepost.git (fetch)
origin  https://github.com/harrisongill/livepost.git (push)

编辑:添加git config

$git config --list
Harrisons-MacBook-Pro:European Explorer harrison$ git config --list
user.name=Harrison Gill
user.email=my email
remote.origin.url=https://github.com/harrisongill/livepost.git
core.repositoryformatversion=0
core.filemode=true
core.logallrefupdates=true
core.precomposeunicode=true

2 个答案:

答案 0 :(得分:4)

所有命令行命令都将字符串写入.git/目录中的文件 在.git/config文件中方便地配置了遥控器,我认为这是Chris所指的内容。

所以,如果你做vim .git/config,你会看到类似的东西:

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  ignorecase = true
  precomposeunicode = false
[remote "origin"]
  url = git@github.com:harrisongill/livepost.git
  fetch = +refs/heads/*:refs/remotes/origin/*

也许还有其他一些让我在[remote "origin"]部分混淆的东西:P。

为什么搞砸了?我不知道。但是,只需手动编辑此文件就可以直接设置:)

摆脱额外的东西你应该好好去:)

答案 1 :(得分:4)

原始答案2014年1月

如“Cannot remove remote origin”中所述,错误消息error: Could not remove config section 'remote.origin'表示您的Git配置文件中没有远程“origin”。

至少不在本地配置文件中。

我刚测试在全局配置文件中添加了一个远程“origin”部分,我得到了你所拥有的:

C:\Users\VonC\prog\git\tests\21195717\t>git config --global --edit

C:\Users\VonC\prog\git\tests\21195717\t>git remote -v
origin  https://a.com/b (fetch)
origin  https://a.com/b (push)

C:\Users\VonC\prog\git\tests\21195717\t>git remote rm origin
error: Could not remove config section 'remote.origin'

检查全局配置文件:

git config --global --edit

2016年2月更新

Git 2.8会将该错误消息更新为“no such remote”。

commit a31eeaecommit cc8e538commit 674468bcommit bc60f8aThomas Gummerer (tgummerer)(2016年2月16日)。{
(由Junio C Hamano -- gitster --合并于commit ae2f255,2016年2月26日)

  

remote:实际检查远程是否退出

     

将git remote命令转换为211c89中的内置命令时(“生成   git-remote一个内置的“),一些调用来检查一个遥控器是否存在   转换自:

  if (!exists $remote->{$name}) {
      [...]
     

为:

  remote = remote_get(argv[1]);
  if (!remote)
      [...]
     

新检查不太正确,因为remote_get()永远不会返回   如果给出了名称,则为NULL   如果我们尝试删除不存在的遥控器,或者如果我们尝试重命名遥控器时出现类似错误,则会给我们留下一些含糊不清的错误消息“error: Could not remove config section 'remote.test'”。 < / p>      

使用remote_is_configured()功能检查遥控器   实际上是存在的,如果不存在,则会出现更明智的错误消息(“No such remote: $remotename”)