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

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

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

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


当前回答

如果你在Linux或Mac上有 sed/grep,它也很容易改变,而不会失去联系。

最近我做了这个改变我的用户名所有我的存储库在配置中本地,但我已经做到了相同的方法,远程线也完全。

VARIABLE_FIND='old'; VARIABLE_REPLACE='new'; path_name='~/PycharmProjects/*/.git/'; grep -rl --include=config "${VARIABLE_FIND}" "${path_name}" | xargs sed -i "s|${VARIABLE_FIND}|${VARIABLE_REPLACE}|g"

要替换整个线路,在那里有一个比赛,你可以这样做:

VARIABLE_FIND='someneedle'; VARIABLE_REPLACE='somenewvalue'; path_name='/home/*/' grep -rl --include=config "${VARIABLE_FIND}" "${path_name}" | xargs sed -i "/${VARIABLE_FIND//\//\\/}/c\\${VARIABLE_REPLACE}" ;

参考: 用 Sed 替换包含一条线的整个线

其他回答

你有很多方法可以做到这一点:

安慰

git remote set-url origin [Here new url] 

只需确保您在存储库的位置打开了它。

确认

它被放置在.git/config (与存储库相同的文件夹)

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = [Here new url]  <------------------------------------
...

可口可乐

此分類上一篇

此分類上一篇

然后编辑URL。

源树

点击“设置”按钮在工具栏上打开仓库设置窗口. 点击“添加”添加一个远程仓库路径到仓库. 一个“远程详细”窗口将打开. 输入一个名称的远程路径. 输入 URL/路径的远程仓库 输入用户名的托管服务的远程仓库. 点击“OK”添加远程路径。

此分類上一篇

此分類上一篇

ref. 支持

对于我来说,接受的答案只在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

更改远程 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

进入文件夹/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

使用 gitbash git 远程 rm 起源命令删除起源 现在使用 gitbash git 远程 添加起源 添加新起源(从您的项目存储库中复制 HTTP 地址)完成