On Thursday 2007 October 18, Jan Wielemaker wrote: > I've somewhere seen it in a mail, but I can't find it anymore. I have a > bare central (public) repository and clones on various machines I work > on. We all know it, you're right in the middle of something and it is > really time to go home. You want to pick up your work at home, but > without pushing to the shared repository. > > I'm sure GIT can do this elegantly, but I'm not yet sure how. I guess > Ideally I want "git stash" at work, transfer the stashed changes to my > other machine and apply them. How do I do that? > > Alternatively, I guess, one can commit at machine A, fetch the commit > from machine A and continue. I'm still too uncertain about the remote > access options to work this out properly, but it also feels less > clean. > > How do you deal with this? I have two remotes (typically) in my .git/config. One for the real central repository and one for the alternate computer. The two locations (say home and work) list the other as a remote. So; before I go home I do this: git commit -b temp -a -m "Hold for transport home" Then when I get home I do this: git fetch work git merge work/temp git reset HEAD^ # code code code git commit -b temp -a -m "Hold for transport to work" When I'm finished at home and want to carry on at work: git fetch --force home git merge home/temp git reset HEAD^ # start coding for the day Obviously if you do this repeatedly you'd need to tidy up the left over temp branches, or ensure that your remote configurations list "+" in the fetch lines. You can also use pushes instead of fetches if you're that way inclined, or you have a connection problem in one direction because of a firewall. It's slightly inelegant but it does ensure that nothing is ever accidentally lost by overwriting new with newer, which happened a few times in the days when I used rsync for copying the working directory between computers. Andy -- Dr Andy Parkins, M Eng (hons), MIET andyparkins@xxxxxxxxx - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html