有没有办法在命令行中自动执行一系列命令或创建某种快捷方式?

时间:2021-07-08 06:35:33

标签: git cmd

我想知道在命令行中输入一组命令是否有快捷方式。

如果有人不得不在命令行中重复输入 4 个命令(即 git add .git commitgit pushgit pull),有没有办法实现这个过程可以加速吗?

例如,仅使用一行作为某种快捷方式?
任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:3)

git alias 是可以 execute functions

my_alias = "!f() { 〈your complex command〉 }; f"

但如果这还不够,请参阅 Powerful Git Macros For Automating Everyday Workflows

中的“Wil Hall

威尔提议:

  • glt 别名和 git 别名函数
  • 外壳别名
  • 来自命令行的 GitHub,带有 gh (cli/cli),以前是 hub
<块引用>

例如,我可能会从 feature 分支 develop 并进行两次提交,现在我想压缩这两次提交。
我可以运行 git rebase -i HEAD~2,或者我们可以构建一个适用于任意数量的提交和任何操作的宏,这样您就不必在您的分支上寻找您正在寻找的提交。

我称这个函数为 gbir (git-branch-interactive-rebase):

gbir() {
 git rebase -i --autosquash $(git merge-base --fork-point "$@" $(git rev-parse --abbrev-ref HEAD))
}

就您而言,对于一组复杂的命令,shell 别名(您是 sourcing)更合适:

<块引用>

让我们看看将基础分支 develop 的更改合并到 feature 分支功能中。
我们希望确保我们拥有来自基础分支和 feature 分支的最新更改,然后我们希望执行变基。
我们称之为gqrb (git-quick-rebase):

gqrb() {
   git set-upstream
   git fetch origin "$@:$@" && git pull && git rebase "$@"
}

现在检查 feature 后,我们可以运行 gqrb develop 将更改从 develop 合并到 feature

首先我们运行 git set-upstream,因为如果我们没有上游分支,这将失败。 接下来,我们只为 git fetch 分支运行 develop。 然后我们拉取当前分支(feature)。
最后,我们运行 git rebase develop

如果其中任何一个步骤失败,&& 将停止执行后续命令。