我在我的硬盘驱动器(本地)上克隆的 USB 密钥上有一个存储库(来源)。我将“原点”移动到 NAS 并成功测试了从这里克隆它。
我想知道我是否可以在“本地”设置中更改“来源”的 URI,这样它现在将从 NAS 中提取,而不是从 USB 密钥中提取。
目前,我可以看到两种解决方案:
将所有内容推送到 usb-orign,然后再次将其复制到 NAS(由于对 nas-origin 的新提交,这意味着很多工作);
将新遥控器添加到“本地”并删除旧遥控器(我担心我会打破我的历史)。
你可以
git remote set-url origin new.git.url/here
(请参阅 git help remote
)或者您可以编辑 .git/config
并在此处更改 URL。除非您做一些非常愚蠢的事情,否则您不会有丢失历史的危险(如果您担心,只需复制您的回购,因为您的回购是您的历史。)
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)
git remote set-url --push origin git@github.com/User/Branch.git
和 git remote set-url composer https://github.com/User/Branch.git
git remote -v
有助于验证,而接受的解决方案没有提供。
git add . && git commit -m 'fix' && git push origin
推送到新遥控器之后,它说一切都是最新的,而新遥控器是空的。可能是什么原因 ?
git remote set-url {name} {url}
git remote set-url origin https://github.com/myName/GitTest.git
Change Host for a Git Origin Server
来自: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.
切换远程 URL
打开终端。
第一步:- 将当前工作目录更改为您的本地项目。
第二步:- 列出您现有的遥控器以获得您想要更改的遥控器的名称。
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
第 4 步:- 现在验证远程 URL 是否已更改。
git remote -v
验证新的远程 URL
origin git@github.com:USERNAME/REPOSITORY.git (fetch)
origin git@github.com:USERNAME/REPOSITORY.git (push)
这非常容易和简单;只需按照这些说明进行操作。
添加或更改远程源: git remote set-url origin githubrepurl 对于您当前在此本地存储库中的远程 URL: git remote show origin
fatal: 'origin' does not appear to be a git repository
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: Changing a remote's URL
git push -u
命令提供完整答案。也许对其他人来说很明显,对我来说不是。
如 here 所示,
$ 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
使用 gitbash git remote rm origin 上的命令删除原点 现在使用 gitbash git remote add origin 添加新的原点(从您的项目存储库中的位桶中复制 HTTP URL)完成
git remote rm origin
git 会记住有关旧来源的详细信息。
git remote rm origin
解决了多个遥控器的问题:我无法设置远程 URL 的问题。 remote.origin.url has multiple values fatal: could not set 'remote.origin.url'
从您的 repo 终端编写以下命令:
git remote set-url origin git@github.com:<username>/<repo>.git
请参阅 this 链接了解有关更改遥控器中 URL 的更多详细信息。
首先你需要输入这个命令来查看现有的遥控器
git remote -v
然后第二个你需要输入这个命令来改变'origin'遥控器的URL
git remote set-url origin <paste your GitHub URL>
检查 git 远程连接:
git remote -v
现在,将本地存储库设置为远程 git:
git remote set-url origin https://NewRepoLink.git
现在使其上游或推送使用以下代码:
git push --set-upstream origin master -f
--set-upstream
使它起作用。
如果你克隆了你的本地将自动包含,
克隆它的远程 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。然后添加命令起作用了。
https://i.stack.imgur.com/uH71e.png
故障排除 :
尝试更改遥控器时,您可能会遇到这些错误。没有这样的远程 '[name]'
此错误意味着您尝试更改的遥控器不存在:
git remote set-url sofake https://github.com/octocat/Spoon-Knife 致命:没有这样的远程“sofake”
检查您是否正确输入了远程名称。
参考:https://help.github.com/articles/changing-a-remote-s-url/
导航到本地存储库的项目根目录并检查现有远程:
git remote -v
如果您的存储库使用 SSH,您将看到如下内容:
> origin git@github.com:USERNAME/REPOSITORY.git (fetch)
> origin git@github.com:USERNAME/REPOSITORY.git (push)
如果您的存储库使用 HTTPS,您将看到如下内容:
> origin https://github.com/USERNAME/REPOSITORY.git (fetch)
> origin https://github.com/USERNAME/REPOSITORY.git (push)
使用 git remote set-url
更改 URL。根据 git remote -v
的输出,您可以通过以下方式更改 URL:
对于 SSH,您可以将 URL 从 REPOSITORY.git
更改为 NEW_REPOSITORY.git
,例如:
$ git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git
如果是 HTTPS,您可以将 URL 从 REPOSITORY.git
更改为 NEW_REPOSITORY.git
,例如:
$ git remote set-url origin https://github.com/USERNAME/NEW_REPOSITORY.git
注意:如果您更改了 GitHub 用户名,您可以按照与上述相同的过程来更新与您的存储库关联的用户名的更改。您只需更新 git remote set-url
命令中的 USERNAME
。
我工作:
git remote set-url origin <project>
在 Git Bash 中,输入命令:
git remote set-url origin https://NewRepoLink.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-agent 时执行 git push
automatically :
#!/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
使用 expect 放置一个脚本文件 $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 [Here new url]
只需确保您已在存储库所在的位置打开它即可。
配置
它位于 .git/config (与存储库相同的文件夹)
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = [Here new url] <------------------------------------
...
TortoiseGit
https://i.stack.imgur.com/3Odbn.jpg
https://i.stack.imgur.com/Unkr4.jpg
然后只需编辑 URL。
源树
单击工具栏上的“设置”按钮以打开“存储库设置”窗口。单击“添加”以将远程存储库路径添加到存储库。将打开“远程详细信息”窗口。输入远程路径的名称。输入远程存储库的 URL/路径 输入远程存储库托管服务的用户名。单击“确定”以添加远程路径。返回“存储库设置”窗口,单击“确定”。现在应该在存储库中添加新的远程路径。如果您需要编辑已添加的远程路径,只需单击“编辑”按钮。您应该被定向到“远程详细信息”窗口,您可以在其中编辑远程路径的详细信息(URL/路径/主机类型)。要删除远程存储库路径,请单击“删除”按钮
https://i.stack.imgur.com/MnWNX.png
https://i.stack.imgur.com/Mkknl.png
参考。 Support
要更改远程上游:git remote set-url origin <url>
要添加更多上游:git remote add newplace <url>
因此,您可以选择在哪里工作 git push origin <branch>
或 git push newplace <branch>
对我来说,接受的答案仅适用于 fetch 而不是 pull 的情况。我做了以下工作以使其也适用于推送。
git remote set-url --push origin new.git.url/here
因此,要更新获取 URL:
git remote set-url origin new.git.url/here
要更新拉取 URL:
git remote set-url --push origin new.git.url/here
您可以通过编辑配置文件来更改 url。转到您的项目根目录:
nano .git/config
然后编辑 url 字段并设置新的 url。保存更改。您可以使用命令验证更改。
git remote -v
另一种方法是重命名“旧”原点(在下面的示例中,我将其简单命名为 old-origin
)并添加一个新原点。这可能是希望的方法,如果您仍然希望能够不时推送到旧源:
git remote rename origin old-origin
git remote add origin git@new-git-server.com>:<username>/<projectname>.git
如果您需要将本地状态推送到新的原点:
git push -u origin --all
git push -u origin --tags
如果您使用的是 TortoiseGit,请按照以下步骤操作:
转到本地结帐文件夹并右键单击转到 TortoiseGit -> Settings 在左侧窗格中选择 Git -> Remote 在右侧窗格中选择 origin 现在将 URL 文本框值更改为新远程存储库所在的位置
您的分支和所有本地提交将保持不变,您可以像以前一样继续工作。
卸下遥控器
使用 git remote rm 命令从存储库中删除远程 URL。
$ git remote -v
# View current remotes
> origin https://github.com/OWNER/REPOSITORY.git (fetch)
> origin https://github.com/OWNER/REPOSITORY.git (push)
> destination https://github.com/FORKER/REPOSITORY.git (fetch)
> destination https://github.com/FORKER/REPOSITORY.git (push)
$ git remote rm destination
# Remove remote
$ git remote -v
# Verify it's gone
> origin https://github.com/OWNER/REPOSITORY.git (fetch)
> origin https://github.com/OWNER/REPOSITORY.git (push)
如果您想在原始 url 中设置用户名和密码,您可以按照以下步骤操作。
在变量中导出密码可以避免特殊字符的问题。
脚步:
export gituser='<Username>:<password>@'
git remote set-url origin https://${gituser}<gitlab_repo_url>
git push origin <Branch Name>
检查您的权限
就我而言,我需要检查我的用户名
我有两个或三个具有单独凭据的存储库。
问题是我的许可我有两个私人 git 服务器和存储库
第二个帐户是该新回购的管理员,第一个是我的默认用户帐户,我应该授予第一个权限
对于那些想要从 Visual Studio 2019 进行此更改的人
打开团队资源管理器 (Ctrl+M)
主页 -> 设置
Git -> 存储库设置
遥控器 -> 编辑
https://i.stack.imgur.com/ifhbk.png
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://...
才能设置原点...(推送)网址。git push -u --all
将所有分支一次推送到新 url(而不是git push -u origin master
)