如何與其父級進行提交?

除了編寫別名或腳本以外,是否有更短的命令來獲取特定提交的差別? git

git diff 15dc8^..15dc8

若是你只提供單個提交id git diff 15dc8 ,它會針對HEAD git diff 15dc8該提交。 spa


#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'祖父母等等。 code


#3樓

上面保羅的解決方案作了我但願的那樣。 it

$ git diff HEAD^1

另外,添加像hobs這樣的別名是頗有用的,若是你將如下內容放在〜/ .gitconfig文件的[alias]部分中,那麼你能夠使用short-hand來查看head和previous之間的diff。 io

[alias]
    diff-last = diff HEAD^1

而後運行$ git diff-last將得到結果。 請注意,這還將包括您還沒有提交的任何更改以及提交之間的差別。 若是要忽略還沒有提交的更改,則能夠使用diff直接將HEAD與其父級進行比較: zsh

$ git diff HEAD^1 HEAD

#4樓

若是您使用zsh並設置了extendedglob選項,那麼許多提到的示例(例如git diff 15dc8^!git diff 15dc8^..15dc8 )都不起做用。 您能夠經過如下三種方法之一修復它: ast

  1. unsetopt extendedglob (和/或從unsetopt extendedglob刪除) sed

  2. setopt NO_NOMATCH (和/或在setopt NO_NOMATCH設置) grep

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


#5樓

使用git show $COMMIT 。 它將向您顯示提交的日誌消息以及該特定提交的差別。

相關文章
相關標籤/搜索