「Git」Little Tips


Git中还有很多实用并且常用的小技巧,适当的使用可以提高我们的工作效率。但因为这些Tips比较琐碎,没法将它们归档到特定的主题下,于是我便整理到这里了——


git commit 选项

  • git commit -a指令可以自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。

git status 选项

  • git status命令的输出十分详细,但其用语有些繁琐。 但是如果使用 git status -s 命令或 git status --short 命令,我们将得到一种格式更为紧凑的输出

git log 选项

  • git log --patch:也可以简写成-p,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 我们也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交。
  • git log --stat: 显示每次提交的简略统计信息,包括有几个文件修改、有几个文件删除等等。
  • git log --pretty:这个选项可以使用不同于默认格式的方式展示提交历史。 这个选项有一些内建的子选项供你使用,比如 git log --pretty=oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用。 另外还有 shortfullfuller 选项,它们展示信息的格式基本一致,但是详尽程度不一。
  • git log --graph:可以在日志旁以 ASCII 图形显示分支与合并历史
  • git log --no-merges:过滤掉"合并提交"的记录
  • git log --merges:之查看合并提交记录

git 别名

如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名。格式如下

git config --global alias.<别名> <原名>

例如,在团队开发时我们经常要查看分支图,查看分支图的命令为git log --oneline --graph --all,但是每次都输入这么长的指令实在是太麻烦了,因此我们可以为其取一个别名——

git config --global alias.graph 'log --oneline --graph --all'

这样我们只需要输入git graph就可以查看分支图了。


查看已经合并

  • git branch --merged:查看哪些分支已经合并到当前分支
  • git branch --no-merged:查看所有包含未合并工作的分支
  • git branch --merged master:查看尚未合并到 master 的分支

公共祖先

在决定是否将两个分支合并前,我们可能需要先寻找两个分支的共同祖先,然后比较这个共同祖先和某一个分支的difference,最后在决定是否合并。

为进行这样的比较,我们可以采用下面三种方式——

  • 先通过命令git merge-base <branch1> <branch2>获得commit_id,再使用git diff <commit_id>
  • 直接使用git diff $(git merge-base <branch1> <branch2>)
  • 使用三点语法——git diff <branch1>...<branch2>,结果是 branch2的最新提交公共祖先 之间差异。

文章作者: Hyggge
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Hyggge !
  目录