git 是否有办法强制创建远程存储库?

vql8enpb  于 2023-02-02  发布在  Git
关注(0)|答案(6)|浏览(156)

我只是想清理代码并消 debugging 误。如果我运行:

git remote add godaddy $user1@foo.com:~/root.git

我得到

fatal: remote godaddy already exists.

我知道它存在,但我只是想让它忽略它,然后再创造一次。
例如,您可以使用-p隐藏mkdir的错误
我检查了这里,但什么也没找到:
https://git-scm.com/docs/git-remote
这不是一个重复,因为我正在寻找一个命令行选项,以抑制"错误"。

7xllpg7q

7xllpg7q1#

你不能告诉Git隐藏错误,如果错误已经存在,你要么删除它,然后重新添加它,要么更新它的URL。隐藏mkdir的错误是可以的,因为如果它存在,你就不需要这样做。对于Git远程对象,这是不正确的,因为现有的可能有不同的URL,所以如果失败了,仅仅忽略命令是不行的。
假设这是您试图更改的某个脚本(否则,如果这是命令行上的手动过程,则忽略错误并继续进行更重要的操作),我可以看到两个简单的解决方案:
1.请先检查远程设备,然后根据需要进行更新或添加:
if git remote | grep -w godaddy ; then git remote set-url godaddy $user1@foo.com:root.git else git remote add godaddy $user1@foo.com:root.git fi
1.尝试添加它,如果失败,则更新URL:
git remote add godaddy $user1@foo.com:root.git || git remote set-url godaddy $user1@foo.com:~/root.git
另一种选择是将stderr重定向到/dev/null,即使git退出时出错,也使命令返回true,但这可能不是一个好主意:

git remote add godaddy $user1@foo.com:root.git 2>/dev/null || true
w8ntj3qf

w8ntj3qf2#

一月一日

当你执行这个命令时,它只会用给定的url更新你的.git/config文件,在你的文件中已经有了这个远程名称。
在这种情况下,您可以根据需要执行以下操作之一?

远程添加

# Add new (second) origin
git remote add godaddy1 $user1@foo.com:~/root.git

远程设置URL

# replace the current origin
git remote set-url godaddy $user1@foo.com:~/root.git

列出所有远程

# List all remotes
git remote -v
nzk0hqpo

nzk0hqpo3#

这是一个通用解决方案:

function addGitRepos(){
    local name1=godaddy
    local url1=$user1@foo.com:root.git    
    if git remote | grep -w $name ; then
        git remote set-url $name1 $url1
    else
        git remote add $name1 $url1
    fi
}

以后如果需要更多的repos,可以创建数组和循环来迭代它。
这只是一个起点。

zy1mlcev

zy1mlcev4#

Git提供了将提交发送到不同远程节点的功能。你可以更改这些远程节点,例如当你的主开发服务器发生变化时。通常你设置好一个远程节点后就不需要再更改了。
如果要将清理后的代码发送到服务器,请确保
1.提交代码git commit -am "Cleaned the code up"
1.将更改推送到服务器git push godaddy master
如果你是git新手,你可能不需要git-remote

5ssjco0h

5ssjco0h5#

git remote remove godaddy 2>&-
git remote add godaddy $user1@foo.com:~/root.git

2>&-类似于2>/dev/null,但对于关闭错误日志后运行良好的命令,它的输入时间更短,git就是这样做的。
这里的其他命令将保留您可能拥有的任何其他远程配置,这 * 可能 * 不会有问题,但是...

jogvjijk

jogvjijk6#

一种脚本故障安全的幂等方法:

git remote add origin git@example.com:group/project || git remote set-url origin git@example.com:group/project

解释

  • 如果origin * 在此存储库中尚不存在 *,则使用git remote add ...命令对其进行设置。
  • 如果origin * 已存在于 * 此资料档案库中,则第一个命令(git remote add ...)将正常失败。然后执行第二个命令(git remote set-url ...)以 * 更新 * 资料档案库URL。

相关问题