Vim

顯示 master 和我上次送出之間的 git-diff

  • March 31, 2021

git經常使用它來與其他人合作。當我們在共享儲存庫上一起工作時,我希望能夠查看其他人在我上次送出和目前 master 分支(或 current HEAD)之間發生的更改。

到目前為止,我正在使用以下工作流程:

git fetch         # download everything
git merge         # since I'm a trusting person ;)
git logadog       # my git-alias for `git log --all --decorate --oneline --graph`
                 # manually look into how many commits were performed since my last commit
git diff HEAD~3   # if 3 commits were performed since then

或者,我也可以使用git diff c0ffee(如果我最後一次送出是c0ffee)。

雖然這可行,但我更喜歡更簡單的東西,比如git diff COMPARE_HEAD_WITH_THE_LAST_COMMIT_FROM_MY_USER,但我不確定它是如何工作的。

我也在使用 Tim Pope 的很棒的vim-plugin fugitive,如果可以使用:Gdiffsplit HEAD~THE_STUFF_FROM_ABOVE-syntax 來做到這一點,那就太棒了。

這不是解決問題的非常“類似 git”的方法。通常你只會保留一個指向你最後一次送出的分支。

但是要回答這個問題,請嘗試以下輔助函式。這不會很有效,我可能需要使用一些較低級別的命令。

my_last_commit(){
       local ME="$(git config user.name)"
       git log --format='%h%n' --author="$ME" -1
}

然後你可以做git diff $(my_last_commit)..HEAD(​​如果你喜歡,可以省略 HEAD,因為它是預設設置)或git logadog $(my_last_commit)^..

引用自:https://unix.stackexchange.com/questions/641201