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

5 messages from 2011-01-21 to 2011-01-23. Participants: Patrick Doyle, Junio C Hamano, David Aguilar, Matthieu Moy, Andreas Schwab.
Thread: https://gitlist.dev/t/26318

## Patrick Doyle, 2011-01-21 14:54

Subject: Move git-stash from one machine (or working copy) to another
Message-ID: <AANLkTin2M+dLUOFnAKqNvYn04NumCmmQ331Yfb9ieW-D@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTin2M%2BdLUOFnAKqNvYn04NumCmmQ331Yfb9ieW-D%40mail.gmail.com

```
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, 2011-01-21 17:49

Subject: Re: Move git-stash from one machine (or working copy) to another
Message-ID: <7vfwsmp2op.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vfwsmp2op.fsf%40alter.siamese.dyndns.org
In-Reply-To: <AANLkTin2M+dLUOFnAKqNvYn04NumCmmQ331Yfb9ieW-D@mail.gmail.com>

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

```

## David Aguilar, 2011-01-23 02:05

Subject: Re: Move git-stash from one machine (or working copy) to another
Message-ID: <1E3784B5-76A2-4071-989D-46E271BB1BAC@gmail.com>
URL: https://gitlist.dev/e/1E3784B5-76A2-4071-989D-46E271BB1BAC%40gmail.com
In-Reply-To: <7vfwsmp2op.fsf@alter.siamese.dyndns.org>

```
On Jan 21, 2011, at 9:49 AM, Junio C Hamano <gitster@pobox.com> wrote:

> 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, 2011-01-23 09:04

Subject: Re: Move git-stash from one machine (or working copy) to another
Message-ID: <vpqaaisj8i2.fsf@bauges.imag.fr>
URL: https://gitlist.dev/e/vpqaaisj8i2.fsf%40bauges.imag.fr
In-Reply-To: <1E3784B5-76A2-4071-989D-46E271BB1BAC@gmail.com>

```
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, 2011-01-23 10:08

Subject: Re: Move git-stash from one machine (or working copy) to another
Message-ID: <m2y66caq5u.fsf@whitebox.home>
URL: https://gitlist.dev/e/m2y66caq5u.fsf%40whitebox.home
In-Reply-To: <AANLkTin2M+dLUOFnAKqNvYn04NumCmmQ331Yfb9ieW-D@mail.gmail.com>

```
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."

```
