问题
I have a repo (origin) on a USB key that I cloned on my hard drive (local). I moved \"origin\" to a NAS and successfully tested cloning it from here.
I would like to know if I can change the URI of \"origin\" in the settings of \"local\" so it will now pull from the NAS, and not from the USB key.
For now, I can see two solutions:
push everything to the usb-orign, and copy it to the NAS again (implies a lot of work due to new commits to nas-origin);
add a new remote to \"local\" and delete the old one (I fear I\'ll break my history).
回答1:
You can
git remote set-url origin new.git.url/here
(see git help remote
) or you can just edit .git/config
and change the URLs there. You're not in any danger of losing history unless you do something very silly (and if you're worried, just make a copy of your repo, since your repo is your history.)
回答2:
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)
Changing a remote's URL
回答3:
Change Host for a Git Origin Server
from: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
Hopefully this isn’t something you need to do. The server that I’ve been using to collaborate on a few git projects with had the domain name expire. This meant finding a way of migrating the local repositories to get back in sync.
Update: Thanks to @mawolf for pointing out there is an easy way with recent git versions (post Feb, 2010):
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
See the man page for details.
If you’re on an older version, then try this:
As a caveat, this works only as it is the same server, just with different names.
Assuming that the new hostname is newhost.com
, and the old one was oldhost.com
, the change is quite simple.
Edit the .git/config
file in your working directory. You should see something like:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git
Change oldhost.com
to newhost.com
, save the file and you’re done.
From my limited testing (git pull origin; git push origin; gitx
) everything seems in order. And yes, I know it is bad form to mess with git internals.
回答4:
git remote set-url origin git://new.location
(alternatively, open .git/config
, look for [remote "origin"]
, and edit the url =
line.
You can check it worked by examining the remotes:
git remote -v
# origin git://new.location (fetch)
# origin git://new.location (push)
Next time you push, you'll have to specify the new upstream branch, e.g.:
git push -u origin master
See also: GitHub: Changing a remote's URL
回答5:
Switching remote URLs
Open Terminal.
Ist Step:- Change the current working directory to your local project.
2nd Step:- List your existing remotes in order to get the name of the remote you want to change.
git remote -v
origin https://github.com/USERNAME/REPOSITORY.git (fetch)
origin https://github.com/USERNAME/REPOSITORY.git (push)
Change your remote's URL from HTTPS to SSH with the git remote set-url command.
3rd Step:- git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
4th Step:- Now Verify that the remote URL has changed.
git remote -v
Verify new remote URL
origin git@github.com:USERNAME/REPOSITORY.git (fetch)
origin git@github.com:USERNAME/REPOSITORY.git (push)
回答6:
- remove origin using command on gitbash git remote rm origin
- And now add new Origin using gitbash git remote add origin (Copy HTTP URL from your project repository in bit bucket) done
回答7:
git remote set-url {name} {url}
ex) git remote set-url origin https://github.com/myName/GitTest.git
回答8:
To check git remote connection:
git remote -v
Now, set the local repository to remote git:
git remote set-url origin https://NewRepoLink.git
Now to make it upstream or push use following code:
git push --set-upstream origin master -f
回答9:
if you cloned your local will automatically consist,
remote URL where it gets cloned.
you can check it using git remote -v
if you want to made change in it,
git remote set-url origin https://github.io/my_repo.git
here,
origin - your branch
if you want to overwrite existing branch you can still use it.. it will override your existing ... it will do,
git remote remove url
and
git remote add origin url
for you...
回答10:
In the Git Bash, enter the command:
git remote set-url origin https://NewRepoLink.git
Enter the Credentials
Done
回答11:
I worked:
git remote set-url origin <project>
回答12:
If you're using TortoiseGit then follow the below steps:
- Go to your local checkout folder and right click to go to
TortoiseGit -> Settings
- In the left pane choose
Git -> Remote
- In the right pane choose
origin
- Now change the
URL
text box value to where ever your new remote repository is
Your branch and all your local commits will remain intact and you can keep working as you were before.
回答13:
You have a lot of ways to do that:
Console
git remote set-url origin [Here new url]
Just be sure that you've opened it in a place where a repository is.
Config
It is placed in .git/config (same folder as repository)
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = [Here new url] <------------------------------------
...
TortoiseGit
Then just edit URL.
SourceTree
Click on the "Settings" button on the toolbar to open the Repository Settings window.
Click "Add" to add a remote repository path to the repository. A "Remote details" window will open.
Enter a name for the remote path.
Enter the URL/Path for the remote repository
Enter the username for the hosting service for the remote repository.
Click 'OK' to add the remote path.
Back on the Repository Settings window, click 'OK'. The new remote path should be added on the repository now.
If you need to edit an already added remote path, just click the 'Edit' button. You should be directed to the "Remote details" window where you can edit the details (URL/Path/Host Type) of the remote path.
To remove a remote repository path, click the 'Remove' button
ref. Support
回答14:
Change remote git URI to
git@github.com
rather thanhttps://github.com
git remote set-url origin git@github.com:<username>/<repo>.git
Example:
git remote set-url origin git@github.com:Chetabahana/my_repo_name.git
The benefit is that you may do git push automatically when you use ssh-agent :
#!/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
Put a script file $HOME/.ssh/agent
to let it runs ssh-add
using expect as below:
#!/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
回答15:
Troubleshooting :
You may encounter these errors when trying to changing a remote. No such remote '[name]'
This error means that the remote you tried to change doesn't exist:
git remote set-url sofake https://github.com/octocat/Spoon-Knife fatal: No such remote 'sofake'
Check that you've correctly typed the remote name.
Reference : https://help.github.com/articles/changing-a-remote-s-url/
回答16:
For those who want to make this change from Visual Studio 2019
Open Team Explorer (Ctrl+M)
Home -> Settings
Git -> Repository Settings
Remotes -> Edit
来源:https://stackoverflow.com/questions/2432764/how-to-change-the-uri-url-for-a-remote-git-repository