Re: Another use of "@"?
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- May 3, 2013, 06:39 UTC
- Message-ID
- <CAMP44s3pN22yfvs_PTzGFfp2cxm3gFMU0ofZ0bNBnzB_yfo+6Q@mail.gmail.com>
- In-Reply-To
- <CACsJy8AcWV8hmbhG27dw+GdnZf8NnQEctYmowqd3sSzOOHf+xg@mail.gmail.com>
On Thu, May 2, 2013 at 9:51 PM, Duy Nguyen <pclouds@gmail.com> wrote:
Show 18 quoted lines
> Hi, > > My setup is a bit peculiar where I do git development on three > different machines. Say I updated branch long-branch-name on machine > A. Then I continue my work on machine B. I would want to hard reset > that long-branch-name on machine B before resuming my work. What I > usually do is > > git co long-branch-name > git diff A/long-branch-name > git reset --hard A/long-branch-name > > but typing long-branch-name (even with TAB completion) is not fun. > Could I do this (or something similar) instead? > > git co long-branch-name > git diff A/@ > git reset --hard A/@
Maybe this would make more sense:
%git co long-branch-name %git reset --keep A/long-branch-name
If you have changes but they don't conflict, they will be carried over, and it they do conflict, the reset won't continue. I think in most cases there will be no conflict, so the times you need to do 'git diff' will be rather small.
Yes, many times I would like an idiom that would just replace something with the current branch, like your A/@, but I don't know where the right place for that would be.
Also, I feel we are missing some kind of branch, like a remote-specific upstream, so instead of 'git reset A/foo' you would do 'git reset A@{u}'. By default the remote-specific upstream would be the same name of the branch, but it could be configured.
Moreover, we should probably have common aliases distributed (e.g. git co).
-- Felipe Contreras