如何在一个命令中创建或更新远程?

时间:2015-04-01 15:07:12

标签: git github deployment git-branch

我不知道名为origin的遥控器是否已经存在。命令

git remote add origin gti@gtihub......git

抛出错误

fatal: remote origin already exists

如果遥控器不存在,我需要添加origin遥控器,如果它已经存在,则更新它。我怎么能在一个命令中做到这一点?

(有关信息,我使用Git版本1.7.3.4。)

另外,有什么区别:

  • git remote add origin gti@gtihub......git

  • git remote set-url origin gti@gtihub......git

  • git remote set-url --add origin gti@gtihub......git

这些命令中的任何一个是否符合我的要求?

1 个答案:

答案 0 :(得分:1)

  

[...] [...]

之间有什么区别
git remote add <name> <url>

<name>为存储库添加名为<url>的远程。

git remote set-url <name> <url>

将名为<name>的远程网址设置为<url>

git remote set-url --add <name> <url>

为名为<name>的远程添加新的(推送)网址;这可能不是你想要做的。

如果已存在名为<name>的远程数据库,则第一个命令会引发错误,而如果没有名为<name>的远程数据库,则最后两个命令会引发错误。

有关详细信息,请参阅git-remote man page

  

我需要在不存在时添加远程源,如果它已经存在则更新它。

您可以使用条件执行:

git remote add <name> <url> >/dev/null 2>&1 || git remote set-url <name> <url>

第二个命令(git remote set-url ...)只有在第一个命令(git remote add ...)返回非零退出代码时才会运行。

>/dev/null 2>&1部分用于将第一个命令的标准输出和标准错误重定向到/dev/null,您可以将其视为UNIX&#34;无底洞&#34; ; here是对输出重定向的介绍。

为方便起见,您可能需要为此定义别名。