如何与其父级进行提交?

天大地大妈咪最大 提交于 2020-02-26 09:07:34

除了编写别名或脚本之外,是否有更短的命令来获取特定提交的差异?

git diff 15dc8^..15dc8

如果你只提供单个提交id git diff 15dc8 ,它会针对HEAD git diff 15dc8该提交。


#1楼

使用别名,所以不能完全回答你的问题,但我觉得这些对你做的事情有用...

alias gitdiff-1="git log --reverse|grep commit|cut -d ' ' -f2|tail -n 2|head -n 2|xargs echo|sed -e 's/\s/../'|xargs -n 1 git diff"
alias gitdiff-2="git log --reverse|grep commit|cut -d ' ' -f2|tail -n 3|head -n 2|xargs echo|sed -e 's/\s/../'|xargs -n 1 git diff"
alias gitdiff-3="git log --reverse|grep commit|cut -d ' ' -f2|tail -n 4|head -n 2|xargs echo|sed -e 's/\s/../'|xargs -n 1 git diff"

alias gitlog-1="git log --reverse|grep commit|cut -d ' ' -f2|tail -n 2|head -n 2|xargs echo|sed -e 's/\s/../'|xargs -n 1 git log --summary"
alias gitlog-2="git log --reverse|grep commit|cut -d ' ' -f2|tail -n 3|head -n 2|xargs echo|sed -e 's/\s/../'|xargs -n 1 git log --summary"
alias gitlog-3="git log --reverse|grep commit|cut -d ' ' -f2|tail -n 4|head -n 2|xargs echo|sed -e 's/\s/../'|xargs -n 1 git log --summary"

#2楼

git diff 15dc8 15dce~1

~1表示'父母',~2'祖父母等等。


#3楼

上面保罗的解决方案做了我希望的那样。

$ git diff HEAD^1

另外,添加像hobs这样的别名是很有用的,如果你将以下内容放在〜/ .gitconfig文件的[alias]部分中,那么你可以使用short-hand来查看head和previous之间的diff。

[alias]
    diff-last = diff HEAD^1

然后运行$ git diff-last将获得结果。 请注意,这还将包括您尚未提交的任何更改以及提交之间的差异。 如果要忽略尚未提交的更改,则可以使用diff直接将HEAD与其父级进行比较:

$ git diff HEAD^1 HEAD

#4楼

如果您使用zsh并设置了extendedglob选项,那么许多提到的示例(例如git diff 15dc8^!git diff 15dc8^..15dc8 )都不起作用。 您可以通过以下三种方法之一修复它:

  1. unsetopt extendedglob (和/或从unsetopt extendedglob删除)

  2. setopt NO_NOMATCH (和/或在setopt NO_NOMATCH设置)

  3. 每次用反斜杠逃脱插入符号和爆炸,例如git diff 15dc8\\^\\!


#5楼

使用git show $COMMIT 。 它将向您显示提交的日志消息以及该特定提交的差异。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!