Subject: Re: How can I do an automatic stash when doing a checkout?

From: Dirk Süsserott <[email-masked]>
Date: Mon, 19 Dec 2011 17:18:18 +0100

Am 18.12.2011 16:10 schrieb DeMarcus:
[...]

>>> With the git stash command I can clean the directory the way I want
>>> but the stash command is not connected to a particular branch.
>>>
>>> Is there a way to have git checkout do an automatic stash when doing a
>>> checkout to another branch, and then do an automatic git stash apply
>>> with the correct stash when changing back to the previous branch
>>> again?
>>
>> You probably don't want to use stash. Just commit whatever partial work
>> you've done.
>>
> 
> It feels strange doing a commit of partial work. Some of the files may
> not even be supposed to be checked in.
> 
>> You could also just checkout different branches in different
>> directories. Nothing wrong with doing that in git.
>>
> 
> Ok thanks, that would give me the same behavior as I have today.
> 
> However, I can see some benefits with have everything in the same
> directory as git allows compared to other VCSs. And since the stashing
> feature is already there in git, it would be nice if the git checkout
> with some flag could use stashing automatically.
> 
> 

DeMarcus,

probably a post-checkout hook could help you with autostashing, but that
would need some scripting. Have a look at "git hooks --help".
I sometimes use such a hook to auto-update submodules when checking out
a branch. To be fair: I don't know how to identify the "right" stash then.

And also have a look at the script "git-new-workdir". It comes with git
but in some contrib directory or so. It's not in the $PATH by default.
It allows different working dirs for different branches; some of my
co-workers use it and like it. It won't work with Windows, I guess,
because it makes use of symlinks.

    Dirk