git如何使用远程存储库的`set-url`

时间:2019-04-03 18:31:48

标签: git

我需要更改远程存储库的url,因此我在查看https://git-scm.com/docs/git-remote bu时的文档:

git remote set-url git@github.com:gitusername/repository.git

我收到消息usage: git remote set-url [--push] <name> <newurl> [<oldurl>]

我不太了解,应该输入:

git remote set-url --push gitusername git@github.com:gitusername/repository.git

或者<name>代表什么?我应该包括旧网址吗?

更新

所以当我键入:

git remote set-url --push origin git@github.com:gitusername/repository.git

然后输入git remote -v

我明白了:

origin  git@github.com:oldusername/oldrepo.git (fetch)
origin  git@github.com:gitusername/repository.git (push)

如何更改提取?

4 个答案:

答案 0 :(得分:2)

您需要为现有遥控器设置URL:

git remote set-url origin git@github.com:gitusername/repository.git

使用上面的命令将同时更新提取网址和推送网址。

使用--push仅更新推送URL:

git remote set-url --push origin git@github.com:gitusername/repository.git
git remote -v

origin  git@github.com:oldusername/oldrepo.git (fetch)
origin  git@github.com:gitusername/repository.git (push)

此刻之后,.git/config中现在有一个单独的条目:

[remote "origin"]
    url = git@github.com:oldusername/oldrepo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    pushurl = git@github.com:gitusername/repository.git

现在,由于存在单独的条目,因此不使用set-url而使用--push只会更新获取,而不是同时更新两者:

git remote set-url origin git@github.com:thirdusername/thirdrepository.git
git remote -v 

origin  git@github.com:thirdusername/thirdrepository.git (fetch)
origin  git@github.com:gitusername/repository.git (push)

如果您想回到原始状态,可以从pushurl删除.git/config条目,也可以使用set-url --delete --push

git remote set-url --delete --push origin git@github.com:gitusername/repository.git

此后,在不使用set-url的情况下调用--push应该回到更改推入URL和获取URL。

答案 1 :(得分:0)

这是遥控器的名称,例如。 origin

列出遥控器时,这些名称也是可见的,因此您可以检查当前名称(也可能是origin

git remote -v
origin  https://github.com/schacon/ticgit (fetch)
origin  https://github.com/schacon/ticgit (push)

当使用多个遥控器时非常有用,例如如果您分叉GitHub存储库,则可以在线上有一个分叉和原始存储库的远程存储(有时习惯上称为“上游”)

答案 2 :(得分:0)

名称是指远程存储库的简写名称。默认情况下,通常称为“来源”。因此,在您的情况下,命令将是

git remote set-url origin git@github.com:gitusername/repository.git

可选的--push选项将设置推入URL而不是获取URL。

答案 3 :(得分:0)

此命令用于添加新的遥控器:

git remote add origin git@github.com:User/UserRepo.git

此命令用于更改现有远程存储库的URL:

git remote set-url origin git@github.com:User/UserRepo.git

此命令将把您的代码推送到由来源定义的远程存储库的master分支,并且-u让您将当前的本地分支指向远程master分支:

git push -u origin master