On Thu, May 2, 2013 at 9:51 PM, Duy Nguyen <pclouds@xxxxxxxxx> wrote: > 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html