获取当前分支名的git命令,获取拉取请求的git命令,以及模拟拉取的git命令,都属于git别名相关话题
我是Git Advent Calendar第11天的负责人@sonots。
我来介绍一个有趣的Git别名。
当前分支
要通过命令获取git的当前分支,可以这样做。
$ git rev-parse --abbrev-ref HEAD
在~/.gitconfig文件的[alias]部分下
current-branch = rev-parse --abbrev-ref HEAD
并且添加了注释,我使用了git current-branch命令来操作。
呷呷拉
这是一个模仿oh-my-zsh的git插件的别名,用于从远程的current-branch拉取代码。请将其添加到.zshrc或.bashrc文件中作为shell的别名。
alias ggpull='git pull --rebase origin $(git current-branch)'
就顺便提一下,我通常会将原始仓库命名为 upstream,这样我也可以使用 gupull 进行拉取。
alias gupull='git pull --rebase upstream $(git current-branch)'
拉取并合并(fetch-pulls)
这样做,您就可以在本地获取到 GitHub 的拉取请求。
$ git fetch origin '+refs/pull/*:refs/remotes/pr/*'
因此,在 ~/.gitconfig 文件的 [alias] 部分下
fetch-pulls = fetch origin +refs/pull/*:refs/remotes/pull/*
我会在前面加上说明,并且使用”git fetch-pulls”进行实际操作。
当收到一个 pull request 时,在将其分支拉到本地并运行实际操作时,我会使用它。
查看并模拟执行git pull命令
如果在执行git pull之前检查更改的方法,在内部IRC上有一个解决方案。可以像这样做。
$ git fetch origin; B=$(git rev-parse --abbrev-ref HEAD); git diff --stat --summary ${B}..origin/${B}
CHANGELOG.md | 6 ++++++
README.md | 8 ++++----
2 files changed, 12 insertions(+), 4 deletions(-)
就是说,在 ~/.gitconfig 中的 [alias] 下方会有
pull-dry-run = !"git fetch origin; B=$(git rev-parse --abbrev-ref HEAD); git diff --stat --summary ${B}..origin/${B}"
我会将其撰写并使用 `git pull-dry-run` 这样的命令来验证。
哎,这个已经写在备忘录里了…嗯,就说我把它别名化了吧…
最后
如果有更多改进或别名的点子,欢迎提出!