如何在一个命令中创建或更新遥控器?
How can I, in one command, create or update a remote?
我不知道名为 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
这些命令中的任何一个都能满足我的要求吗?
[...] what is the difference between [...]
git remote add <name> <url>
为位于 <url>
的存储库添加一个名为 <name>
的远程。
git remote set-url <name> <url>
将名为 <name>
的遥控器的 URL 设置为 <url>
。
git remote set-url --add <name> <url>
为名为 <name>
的遥控器添加一个新的(推送)URL;那可能不是你想要做的。
如果名为 <name>
的遥控器已经存在,则第一个命令将抛出错误,而如果不存在名为 <name>
的遥控器,则最后两个命令将抛出错误。
参考git-remote
man page了解更多详情。
I need to add remote origin when it does not exists, and update it if it already exists.
您可以为此使用条件执行:
git remote add <name> <url> >/dev/null 2>&1 || git remote set-url <name> <url>
如果第一个命令 (git remote add ...
) returns 具有非零退出代码,则第二个命令 (git remote set-url ...
) 只会 运行。
>/dev/null 2>&1
部分用于将第一个命令的标准输出和标准错误重定向到/dev/null
,你可以认为是UNIX的"bottomless pit"; here 是对输出重定向的介绍。
为方便起见,您可能需要为此定义一个别名。
我不知道名为 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
这些命令中的任何一个都能满足我的要求吗?
[...] what is the difference between [...]
git remote add <name> <url>
为位于 <url>
的存储库添加一个名为 <name>
的远程。
git remote set-url <name> <url>
将名为 <name>
的遥控器的 URL 设置为 <url>
。
git remote set-url --add <name> <url>
为名为 <name>
的遥控器添加一个新的(推送)URL;那可能不是你想要做的。
如果名为 <name>
的遥控器已经存在,则第一个命令将抛出错误,而如果不存在名为 <name>
的遥控器,则最后两个命令将抛出错误。
参考git-remote
man page了解更多详情。
I need to add remote origin when it does not exists, and update it if it already exists.
您可以为此使用条件执行:
git remote add <name> <url> >/dev/null 2>&1 || git remote set-url <name> <url>
如果第一个命令 (git remote add ...
) returns 具有非零退出代码,则第二个命令 (git remote set-url ...
) 只会 运行。
>/dev/null 2>&1
部分用于将第一个命令的标准输出和标准错误重定向到/dev/null
,你可以认为是UNIX的"bottomless pit"; here 是对输出重定向的介绍。
为方便起见,您可能需要为此定义一个别名。