我不知道名为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
这些命令中的任何一个是否符合我的要求?
答案 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是对输出重定向的介绍。
为方便起见,您可能需要为此定义别名。