Vim
顯示 master 和我上次送出之間的 git-diff
我
git
經常使用它來與其他人合作。當我們在共享儲存庫上一起工作時,我希望能夠查看其他人在我上次送出和目前 master 分支(或 currentHEAD
)之間發生的更改。到目前為止,我正在使用以下工作流程:
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
-pluginfugitive
,如果可以使用: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)^..