git - 组合 git `continue` 命令

标签 git alias

不同的我可能需要运行:

  • 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

现在这个脚本...

  1. 返回相应的退出代码(例如,128 表示不是 git 存储库等)和 git 二进制文件本身的错误消息(如 fatal: not a git repository(或任何父目录): .git)
  2. 回显“No something in progress?” 如果没有任何事情发生。

关于git - 组合 git `continue` 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52987918/

相关文章:

git - 在 Jenkins 管道 checkout 中禁用更改日志

git工具媲美bzr qlog

linux - 从 bash 脚本创建的全局 bash 脚本别名

用于使用可选文本快速提交的 Git 别名

linux - 在 Unix 中别名查找目录

带有空格的参数的 Git 别名

git - 如何在Windows中设置gitblit

git - 在我将 key 添加到 Bitbucket 后,服务器一直要求输入密码

git - 我如何处理文件而不是二进制文件(git)

java - Gradle 依赖项 - 用一个模块替换另一个