Change the URI (URL) for a remote Git repository

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).


  • You can

    git remote set-url origin git://new.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.)


    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)
    

    更改远程的URL


    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.

    链接地址: http://www.djcxy.com/p/80.html

    上一篇: 如何将新的本地分支推送到远程Git存储库并进行跟踪?

    下一篇: 更改远程Git存储库的URI(URL)