Re: Howto request: going home in the middle of something?
- From
- Andy Parkins <andyparkins@gmail.com>
- Date
- Oct 18, 2007, 11:29 UTC
- Message-ID
- <200710181229.07106.andyparkins@gmail.com>
- In-Reply-To
- <200710181144.22655.wielemak@science.uva.nl>
On Thursday 2007 October 18, Jan Wielemaker wrote:
Show 16 quoted lines
> 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@gmail.com