不同的我可能需要运行:
git rebase --continue
git cherry-pick --continue
git revert --continue
在每种情况下,我的命令行都在提醒我我处于中间状态(rebase/cp/revert),所以我很清楚它知道哪个处于事件状态。
所以感觉在概念上可能有一个命令 git continue
将继续当前处于事件状态的操作,从而节省一些繁琐的输入?
- A) 这个命令是否已经存在(在这种情况下,它是什么,它支持什么?
- B) 如果我愿意,我怎么能自己写这个命令? (也许有别名?)
最佳答案
除了@alfunx 的回答之外,我可能会建议进行以下更改:
我没有执行 repo_path=$(git rev-parse --git-dir 2>/dev/null)
来忽略 git 的返回码和日志,而是将脚本更改为:
#!/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
现在这个脚本...
- 返回相应的退出代码(例如,
128
表示不是 git 存储库等)和 git 二进制文件本身的错误消息(如fatal: not a git repository(或任何父目录): .git
) 回显“No something in progress?”
如果没有任何事情发生。
关于git - 组合 git `continue` 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52987918/