Dotfiles/site-modules/core/files/bin/git-merge-to
Ade Attwood 1e4968e1e1 feat(git): update merge-to to rebase onto target branch
Now when merging to it will rebase onto the target branch to make
merge-to work more. I was finding that it will fail and I was doing
the merge step all the time so now its built in.
2021-03-16 20:18:15 +00:00

56 lines
926 B
Bash
Executable file

#!/usr/bin/env bash
#
# Merges a git branch into a another branch.
#
# Author: Ade Attwood <code@adeattwood.co.uk>
# Created: 2018-11-11
#
set -e
MERGE_BRANCH="$1";
main() {
local branch=$(git rev-parse --abbrev-ref HEAD);
echo "Merging $branch with $MERGE_BRANCH";
#
# Ensure the target branch is up to date
#
git checkout $MERGE_BRANCH
git pull origin $MERGE_BRANCH
git checkout $branch
#
# Rebase onto branch so we don't create a merge commit
#
git rebase $MERGE_BRANCH;
#
# Merge into the target branch ensuring its a fast forward merge
#
git checkout $MERGE_BRANCH;
git merge --ff-only --log $branch;
}
if [[ ! -z "$1" ]]; then
main;
exit 0;
fi
cat << HELP
Git Merge To
For the reverse of \`git merge\`
The flow for the script is:
- Change to the target branch
- Pull branch for the latest changes
- Merge the previous branch
Usage: $0 <branch_name>
HELP
exit 1;