git repository sync between computers, when moving around?

前端 未结 8 787
萌比男神i
萌比男神i 2020-12-07 07:18

Let\'s say that I have a desktop pc and a laptop, and sometimes I work on the desktop and sometimes I work on the laptop.

What is the easiest way to move a git repo

8条回答
  •  伪装坚强ぢ
    2020-12-07 08:04

    I think, there are multiple approaches. I will just describe, how I handle this

    I have one netbook as a 24/7 server, that holds multiple git-repositories. From/To there I push and pull changes via SSH. For access from outside I use dyndns.org. It works fine, especially because I have more than two systems, that needs access to some of the repositories.

    Update: A little example. Lets say my netbook is called "netbook". I create a repository there

    $ ssh username@netbook.local
    $ cd ~/git
    $ mkdir newThing
    $ cd newThing
    $ git init --bare
    

    On my desktop I will than create a clone of it. Maybe I will add some files also

    $ git clone username@netbook.local:/home/username/git/newThing
    $ git add .
    $ git commit -m "Initial"
    $ git push origin master
    

    On my portables I will (first) do the same, but for remote access (from outside my LAN), I will also add the external address.

    $ git clone username@netbook.local:/home/username/git/newThing
    $ git remote add externalName username@mydyndns.home-ip.org:/home/username/git/newThing
    $ git pull externalName master
    

    Its just the way git (/git workflows) works. You can add as many remote repositories as you like. It doesnt matters, if two or more refers to the same "physical" repositories. You dont need an own local "server", you can use any public server, to which you have ssh access. And of course you dont need a public server at all, if you dont need access from outside. The bare repository can also be on the desktop system and you can then create a working-copy-repository within the local filesystem.

    $ mkdir myRepo; cd myRepo
    $ git init --bare
    $ cd /path/to/myProject
    $ git remote add origin /path/to/myRepo
    $ git add .; git commit -m "Initial"; git push origin master
    

    This is the way, how I handle this, and I for me it works quite fine (if not perfect ;))

    Something to read: http://progit.org/ Really good book.-

提交回复
热议问题