我在我的硬盘上(本地)克隆的USB键上有一个repo(起源)。我将“起源”转移到NAS,并成功测试了从这里克隆。
我想知道我是否可以在“本地”设置中更改“起源”的URI,所以它现在将从NAS中拖动,而不是从USB键。
到目前为止,我可以看到两个解决方案:
把一切推到USB起源,然后将其复制到NAS(这意味着由于NAS起源的新承诺而付出很多工作);添加一个新的远程到“本地”并删除旧的(我担心我会打破我的历史)。
我在我的硬盘上(本地)克隆的USB键上有一个repo(起源)。我将“起源”转移到NAS,并成功测试了从这里克隆。
我想知道我是否可以在“本地”设置中更改“起源”的URI,所以它现在将从NAS中拖动,而不是从USB键。
到目前为止,我可以看到两个解决方案:
把一切推到USB起源,然后将其复制到NAS(这意味着由于NAS起源的新承诺而付出很多工作);添加一个新的远程到“本地”并删除旧的(我担心我会打破我的历史)。
当前回答
它会很好,你可以尝试这个
对于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
其他回答
如果您正在使用 TortoiseGit 然后遵循下面的步骤:
转到您的本地查询文件夹,然后右键单击转到 TortoiseGit -> 设置 在左键中选择 Git -> Remote 在右键中选择起源 现在更改 URL 文本框值到您的新远程存储库的位置
你的分支和所有的地方承诺将保持不稳定,你可以继续像以前那样工作。
更改远程 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 远程设置 URL 起源 githubrepurl 查看您目前在本地存储库中有哪些远程 URL: git 远程显示起源
如果您想在原始URL中设置用户名和密码,您可以遵循下面的步骤。
输出密码在变量将避免与特殊字符的问题。
步骤:
export gituser='<Username>:<password>@'
git remote set-url origin https://${gituser}<gitlab_repo_url>
git push origin <Branch Name>
(仅限 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]")}