Variously I might need to run:
git rebase --continue
git cherry-pick --continue
git revert --continue
<
In addition to @alfunx's answer, I might suggest this change:
Instead of doing repo_path=$(git rev-parse --git-dir 2>/dev/null)
so git's return code & log is ignored, I changed the script to this:
#!/usr/bin/env bash
repo_path=$(git rev-parse --git-dir)
if [ $? -ne 0 ]; then
exit $?
fi
if [ -d "${repo_path}/rebase-merge" ]; then
git rebase --continue
elif [ -d "${repo_path}/rebase-apply" ]; then
git rebase --continue
elif [ -f "${repo_path}/MERGE_HEAD" ]; then
git merge --continue
elif [ -f "${repo_path}/CHERRY_PICK_HEAD" ]; then
git cherry-pick --continue
elif [ -f "${repo_path}/REVERT_HEAD" ]; then
git revert --continue
else
echo "No something in progress?"
fi
Now this script...
128
for not being a git repository, etc) and error message from git binary itself(like fatal: not a git repository (or any of the parent directories): .git
) echo "No something in progress?"
if there was nothing going on.Such a command does not exist, to my knowledge. However you could create a script for that, called e.g. git-continue
:
#!/usr/bin/env bash
repo_path=$(git rev-parse --git-dir 2>/dev/null)
if [ -d "${repo_path}/rebase-merge" ]; then
git rebase --continue
elif [ -d "${repo_path}/rebase-apply" ]; then
git rebase --continue
elif [ -f "${repo_path}/MERGE_HEAD" ]; then
git merge --continue
elif [ -f "${repo_path}/CHERRY_PICK_HEAD" ]; then
git cherry-pick --continue
elif [ -f "${repo_path}/REVERT_HEAD" ]; then
git revert --continue
fi
Put the script somewhere in your $PATH
, and then you can use git continue
.
Note that there are similar flags like --continue
, for example --abort
, --skip
, --quit
, which you might want to cover as well.