我想知道在命令行中输入一组命令是否有快捷方式。
如果有人不得不在命令行中重复输入 4 个命令(即 git add .
、git commit
、git push
和 git pull
),有没有办法实现这个过程可以加速吗?
例如,仅使用一行作为某种快捷方式?
任何帮助都非常感谢。
答案 0 :(得分:3)
git alias
是可以 execute functions
my_alias = "!f() { 〈your complex command〉 }; f"
但如果这还不够,请参阅 Powerful Git Macros For Automating Everyday Workflows
中的“Wil Hall”威尔提议:
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
。
如果其中任何一个步骤失败,&&
将停止执行后续命令。