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

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

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

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


当前回答

这个答案属于一个问题,我无法在其他地方找到答案:做这个项目在Gitlab,有一个子组。

git remote add origin git@gitlab.com:group/subgroup/project.git

与所有有“用户名”而不是“组”的答案相反,没有一个通过SSH为我工作。

git remote add origin https://username@gitlab.com/group/subgroup/project.git

请注意两者之间的区别是 ".com:group" 和 ".com/group" 。

如果这不是直接从盒子上工作,我使用了HTTPS方法之前成功使用SSH一个,可能是一个因素,但我不能生气尝试并重复它没有它。

其他回答

如果你在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 替换包含一条线的整个线

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

转换远程URL

开放终端。

Ist 步骤: 将当前工作目录更改为本地项目。

第二步:列出您的现有远程,以获得您想要更改的远程的名称。

远程 -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

从 HTTPS 更改远程 URL 到 SSH 使用 git 远程设置 URL 命令。

第三步:- git 远程设置 URL 起源 git@github.com:USERNAME/REPOSITORY.git

步骤4:现在确保远程 URL 已改变。

git 远程 -v 查看新远程 URL

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)

(仅限 Windows PS) 在所有本地休息室中重复更改服务器/协议

Get-ChildItem -Directory -Recurse -Depth [Number] -Hidden -name | %{$_.replace("\.git","")} | %{git -C $_ remote set-url origin $(git -C $_ remote get-url origin).replace("[OLD SERVER]", "[NEW SERVER]")}

如果您想在原始URL中设置用户名和密码,您可以遵循下面的步骤。

输出密码在变量将避免与特殊字符的问题。

步骤:

export gituser='<Username>:<password>@'
git remote set-url origin https://${gituser}<gitlab_repo_url> 
git push origin <Branch Name>