我在我的硬盘上(本地)克隆的USB键上有一个repo(起源)。我将“起源”转移到NAS,并成功测试了从这里克隆。

我想知道我是否可以在“本地”设置中更改“起源”的URI,所以它现在将从NAS中拖动,而不是从USB键。

到目前为止,我可以看到两个解决方案:

把一切推到USB起源,然后将其复制到NAS(这意味着由于NAS起源的新承诺而付出很多工作);添加一个新的远程到“本地”并删除旧的(我担心我会打破我的历史)。


当前回答

进入文件夹/repo,您要更改并执行下面的命令:

下面的命令将改变 repo 的 git fetch URL。

git remote set-url origin <your new url>.git

下面的命令将改变 repo 的 git push URL。

git remote set-url --push origin <your new url>.git

下面的命令检查上面的变化是否反映

git remote -v

其他回答

此分類上一篇: git remote set-url {name} {url}

git remote set-url origin https://github.com/myName/GitTest.git

更改远程 git URI 到 git@github.com 而不是 https://github.com

git remote set-url origin git@github.com:<username>/<repo>.git

例子:

git remote set-url origin git@github.com:Chetabahana/my_repo_name.git

优点是,当您使用 ssh 代理时,您可以自动进行 git push :

#!/bin/bash

# Check ssh connection
ssh-add -l &>/dev/null
[[ "$?" == 2 ]] && eval `ssh-agent`
ssh-add -l &>/dev/null
[[ "$?" == 1 ]] && expect $HOME/.ssh/agent

# Send git commands to push
git add . && git commit -m "your commit" && git push -u origin master

插入一个脚本文件 $HOME/.ssh/agent 让它运行 ssh-add 使用预期如下:

#!/usr/bin/expect -f
set HOME $env(HOME)
spawn ssh-add $HOME/.ssh/id_rsa
expect "Enter passphrase for $HOME/.ssh/id_rsa:"
send "<my_passphrase>\n";
expect "Identity added: $HOME/.ssh/id_rsa ($HOME/.ssh/id_rsa)"
interact

更改主机为 Git Origin 服务器

从: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/

希望这不是你需要做的事情,我已经使用的服务器在一些 git 项目上合作,域名终止了,这意味着找到一个方式来迁移当地存储库以恢复同步。

更新: 感谢 @mawolf 指出,最近的 git 版本有一个简单的方式(发表于 2010 年 2 月):

git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git

如果你有更古老的版本,那就尝试一下:

在工作目录中编辑.git/config 文件,您应该看到如下:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git

更改 oldhost.com 到 newhost.com,保存文件,你已经完成了。

从我的有限测试(git pull 起源; git push 起源; gitx)一切似乎顺序。

对于我来说,接受的答案只在Fetch的情况下工作,但不是拖动。

git remote set-url --push origin new.git.url/here

此分類上一篇: fetch URL:

git remote set-url origin new.git.url/here

要更新 pull URL:

git remote set-url --push origin new.git.url/here

它会很好,你可以尝试这个

对于SSH:

命令: git 远程设置 URL 起源 <ssh_url>

例如: git 远程设置 URL 起源 git@github.com:username/rep_name.git

对于HTTPS:

命令: git 远程设置 URL 起源 <https_url>

例如: git 远程设置 URL 起源 https://github.com/用户名/REPOSITORY.git