threads / discuss / 26318

Move git-stash from one machine (or working copy) to another

Subject: Move git-stash from one machine (or working copy) to another

## tl;dr

5 messages between Jan 21, 2011 and Jan 23, 2011.

replies: 4people: 5as markdown or json

Patrick Doyle· Jan 21, 2011, 14:54 UTC · lore
Is there an easy way to move work in progress from one machine to another?
One way to do it might be something like this:

machine1$ git checkout -b movewip machine1$ git add . machine1$ git commit -m "Moving work in progress" machine1$ git push origin movewip:movewip

machine2$ git fetch origin movewip:movewip: machine2$ git checkout movewip machine2$ git reset HEAD^ machine2$ git stash machine2$ git checkout master machine2$ git stash pop

# go through and delete movewip branches on machine1, machine2, and the origin server

Except for some possible typos, this seems like it would work, but seems to be awfully clumsy. Is there a more elegant way to accomplish this?

It seems to me that if I could git-stash on machine1, take that stash with me (somehow) to machine2, and then pop it there, that would be easier. --wpd

Junio C Hamano· Jan 21, 2011, 17:49 UTC · re: Patrick Doyle · lore

Re: Move git-stash from one machine (or working copy) to another

Patrick Doyle <wpdster@gmail.com> writes:
Show 22 quoted lines
> Is there an easy way to move work in progress from one machine to another?
>
> One way to do it might be something like this:
>
> machine1$ git checkout -b movewip
> machine1$ git add .
> machine1$ git commit -m "Moving work in progress"
> machine1$ git push origin movewip:movewip
>
> machine2$ git fetch origin movewip:movewip:
> machine2$ git checkout movewip
> machine2$ git reset HEAD^
> machine2$ git stash
> machine2$ git checkout master
> machine2$ git stash pop
>
> # go through and delete movewip branches on machine1, machine2, and
> the origin server
>
> Except for some possible typos, this seems like it would work, but
> seems to be awfully clumsy.  Is there a more elegant way to accomplish
> this?

If your two machines can talk directly with each other (which seems to be the case from your "take that with me (somehow) to machine2"), you don't have to push and fetch through the origin.

David Aguilar· Jan 23, 2011, 02:05 UTC · re: Junio C Hamano · lore

Re: Move git-stash from one machine (or working copy) to another

On Jan 21, 2011, at 9:49 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 32 quoted lines
> Patrick Doyle <wpdster@gmail.com> writes:
>
>> Is there an easy way to move work in progress from one machine to  
>> another?
>>
>> One way to do it might be something like this:
>>
>> machine1$ git checkout -b movewip
>> machine1$ git add .
>> machine1$ git commit -m "Moving work in progress"
>> machine1$ git push origin movewip:movewip
>>
>> machine2$ git fetch origin movewip:movewip:
>> machine2$ git checkout movewip
>> machine2$ git reset HEAD^
>> machine2$ git stash
>> machine2$ git checkout master
>> machine2$ git stash pop
>>
>> # go through and delete movewip branches on machine1, machine2, and
>> the origin server
>>
>> Except for some possible typos, this seems like it would work, but
>> seems to be awfully clumsy.  Is there a more elegant way to  
>> accomplish
>> this?
>
> If your two machines can talk directly with each other (which seems  
> to be
> the case from your "take that with me (somehow) to machine2"), you  
> don't
> have to push and fetch through the origin.

This won't handle all cases, but it should do the trick 80%+ of the time.

% git diff > foo.patch

(on other machine) % git apply foo.patch

-- 
         David
Matthieu Moy· Jan 23, 2011, 09:04 UTC · re: David Aguilar · lore

Re: Move git-stash from one machine (or working copy) to another

David Aguilar <davvid@gmail.com> writes:
> This won't handle all cases, but it should do the trick 80%+ of the
> time.
>
> % git diff > foo.patch
Or, if the patch produced by "git diff" doesn't do it:

git commit -am foo git format-patch -1 git reset HEAD^

> (on other machine)
> % git apply foo.patch
In one command:
git diff | ssh other-machine 'cd /path/to/repo && git apply'
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Andreas Schwab· Jan 23, 2011, 10:08 UTC · re: Patrick Doyle · lore

Re: Move git-stash from one machine (or working copy) to another

Patrick Doyle <wpdster@gmail.com> writes:
> It seems to me that if I could git-stash on machine1, take that stash
> with me (somehow) to machine2, and then pop it there, that would be
> easier.
machine1$ git stash

machine2$ git fetch machine1:/repo refs/stash machine2$ git checkout FETCH_HEAD .

Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

← back to recent threads