'Git alias for checkout branch, pull and checkout back
We are using the Feature-Branch-Workflow, which means others merge theire changes to the dev
-branch that I want to merge into my feature branch. As it happens a lot I would like to have a simple git alias which does:
- Checkout the
dev
branch - Pull
- Checkout the previous branch
I want to do the merge myself, as sometimes changes block the checkout or pulls can fail.
My current state is:
[alias]
pull-and-back = !git checkout $1 && git pull && git checkout @{-1}
which sadly gives the error error: pathspec 'dev' did not match any file(s) known to git
.
What is going wrong? I assume as the exclamation mark causes the command to be interpreted as bash code the last part @{-1}
is not evaluated by git but by bash instead.
Solution 1:[1]
You'd have to use an ad hoc bash function to pass your parameter :
git config alias.pab '!f() { git checkout $1 && git pull && git checkout -; }; f'
As a note, git checkout -
is a handy shortcut for git checkout @{-1}
, but both work.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Romain Valeri |