我在硬盘(本地)上克隆的USB密钥上有一个回购(来源)。我将“起源”移至NAS并成功测试了从此处克隆它的过程。
我想知道是否可以在“本地”设置中更改“源”的URI,以便它现在可以从NAS而不是从USB密钥中提取。
现在,我可以看到两种解决方案:
将所有内容推送到usb-orign,然后再次将其复制到NAS(由于对nas-origin的新提交,这意味着很多工作);
在“本地”中添加新的遥控器,然后删除旧的遥控器(我担心会破坏我的历史记录)。
我在硬盘(本地)上克隆的USB密钥上有一个回购(来源)。我将“起源”移至NAS并成功测试了从此处克隆它的过程。
我想知道是否可以在“本地”设置中更改“源”的URI,以便它现在可以从NAS而不是从USB密钥中提取。
现在,我可以看到两种解决方案:
将所有内容推送到usb-orign,然后再次将其复制到NAS(由于对nas-origin的新提交,这意味着很多工作);
在“本地”中添加新的遥控器,然后删除旧的遥控器(我担心会破坏我的历史记录)。
Answers:
您可以
git remote set-url origin new.git.url/here
(请参阅参考资料git help remote
),也可以.git/config
在此处编辑和更改URL。除非您做一些非常愚蠢的事情,否则您不会失去历史记录的危险(并且,如果担心,只需复制一份您的回购协议,因为您的回购协议就是您的历史记录。)
myself@git://new.url.here
git branch -u origin/master
。这将使您git push
不必git push origin master
每次都去。
git push -u origin master
在第一时间:)
git remote set-url --push origin git://...
为了设置来源...(推送)URL。
git push -u --all
在一次新的URL(而不是推所有分行git push -u origin master
)
git remote -v
# View existing remotes
# origin https://github.com/user/repo.git (fetch)
# origin https://github.com/user/repo.git (push)
git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL
git remote -v
# Verify new remote URL
# origin https://github.com/user/repo2.git (fetch)
# origin https://github.com/user/repo2.git (push)
来自: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
有关详细信息,请参见手册页。
如果您使用的是旧版本,请尝试以下操作:
需要注意的是,这仅适用于同一台服务器,只是名称不同。
假设新的主机名是newhost.com
,旧的主机名是,oldhost.com
更改非常简单。
.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 origin; git push origin; gitx
),一切似乎井井有条。是的,我知道混入git内部结构是不好的形式。
Backup your local repository _before_ messing with git internals.
git remote set-url origin git://new.location
(或者,打开.git/config
,查找[remote "origin"]
,然后编辑该url =
行。
您可以通过检查遥控器来检查其是否有效:
git remote -v
# origin git://new.location (fetch)
# origin git://new.location (push)
下次按下时,您必须指定新的上游分支,例如:
git push -u origin master
另请参阅:GitHub:更改遥控器的URL
git push -u
命令的完整答案。也许对其他人显而易见,不是我。
打开终端。
步骤: -将当前工作目录更改为本地项目。
第二步: -列出您现有的遥控器,以获取要更改的遥控器的名称。
git remote -v
origin https://github.com/USERNAME/REPOSITORY.git (fetch)
origin https://github.com/USERNAME/REPOSITORY.git (push)
使用git remote set-url命令将远程URL从HTTPS更改为SSH。
第三步: - git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
第四步: -现在验证远程URL已更改。
git remote -v
验证新的远程URL
origin git@github.com:USERNAME/REPOSITORY.git (fetch)
origin git@github.com:USERNAME/REPOSITORY.git (push)
git remote rm origin
git会记住有关旧来源的详细信息。
git remote rm origin
解决了多个远程服务器的问题:无法设置远程URL的问题。remote.origin.url has multiple values fatal: could not set 'remote.origin.url'
如果您克隆了本地文件,则本地文件将自动包含在内,
克隆它的远程URL。
您可以使用检查 git remote -v
如果您要进行更改,
git remote set-url origin https://github.io/my_repo.git
这里,
来源-您的分支
如果您想覆盖现有分支,您仍然可以使用它。它将覆盖您现有的分支...
git remote remove url
and
git remote add origin url
为了你...
git remote rm origin
需要命令来删除所有关联的url。然后添加命令起作用。
要检查git远程连接:
git remote -v
现在,将本地存储库设置为远程git:
git remote set-url origin https://NewRepoLink.git
现在使其成为上游或推送使用以下代码:
git push --set-upstream origin master -f
--set-upstream
使它起作用。
将远程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-agent时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 remote set-url origin <project>
您有很多方法可以做到这一点:
安慰
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 /路径
输入远程存储库的托管服务的用户名。
单击“确定”添加远程路径。
返回“存储库设置”窗口,单击“确定”。现在应该在存储库中添加新的远程路径。
如果您需要编辑已经添加的远程路径,只需单击“编辑”按钮。应该将您定向到“远程详细信息”窗口,您可以在其中编辑远程路径的详细信息(URL /路径/主机类型)。
要删除远程存储库路径,请单击“删除”按钮
参考 支持
$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ git config master.remote origin
$ git config master.merge refs/heads/master
如果您使用的是TortoiseGit,请按照以下步骤操作:
TortoiseGit -> Settings
Git -> Remote
origin
URL
文本框值更改为新的远程存储库所在的位置您的分支和所有本地提交将保持不变,并且您可以像以前一样继续工作。
故障排除 :
尝试更改遥控器时,您可能会遇到这些错误。没有这样的远程“ [名称]”
此错误意味着您尝试更改的遥控器不存在:
git remote set-url sofake https://github.com/octocat/Spoon-Knife 致命:没有这样的远程“ sofake”
检查您是否正确输入了远程名称。
参考:https : //help.github.com/articles/changing-a-remote-s-url/