Git - 使用命令和P4Merge進行diff

solenovex發表於2018-03-21

P4Merge

P4Merge是Git的一個第三發Diff和Merge工具(視覺化衝突解決工具).

下載地址: https://www.perforce.com/downloads/visual-merge-tool

安裝的時候只需要勾選p4merge即可:

然後需要把p4merge的路徑新增到環境變數PATH裡面.

這樣操作後, 就可以通過命令列啟動p4merge了:

 

配置p4merge作為Git的diff tool:

git config --global diff.tool p4merge
git config --global difftool.p4merge.path "C:\Program Files\Perforce\p4merge.exe"

因為每次使用diff tool的時候, git會彈出確認框, 我們最好把這個確認框從全域性範圍內預設不啟用:

git config --global difftool.prompt false

配置p4merge作為git的merge tool:

git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:\Program Files\Perforce\p4merge.exe"
git config --global mergetool.prompt false

 

最後檢查一下全域性配置:

git config --global --list

OK.

 

下面準備一個專案, 現在的專案狀態是:

新增一個README.md, 然後add並commit.

然後修改README.md 然後add

然後再修改README.md:

git status告訴我這個檔案被修改了, 但是沒有告訴我哪裡被修改了.

為了知道更多的細節, 這裡就需要使用 git diff命令了.

不加任何引數的情況下, 該命令

比較的是working directory裡面, 被stage的變化 vs 沒被stage的變化:

如果變化太多了顯示不下, 想要退出的話, 就按q就行.

因為我配置了git difftool, 所以也可以使用 git difftool這個命令:

這就會彈出p4merge這個視覺化工具, 可以清楚的看到變化.

左邊的是stage的, 右邊的是沒有stage的.

 

比較working directory和最後一次commit:

git diff HEAD.

下面使用視覺化的difftool: git difftool HEAD.

 

 

 

比較Staging 區和最後一次commit.

git diff --staged HEAD.

使用視覺化工具: git difftool --staged HEAD:

 

 

只比較一個檔案/路徑.

再修改專案的另一個檔案, 然後檢視狀態:

如果執行git diff的話, 那麼兩個檔案都會被比較:

只想比較一個檔案/路徑的話就需要加引數:

git diff -- README.md:

也可以使用視覺化工具:

git difftool -- README.md:

 

比較兩個commit.

先檢視歷史: git log --oneline:

git diff xxx yyy

其中xxx和yyy都表示commit的 id, 最後一次commit可以用HEAD表示.

下面這個命令比較的是HEAD 和 HEAD的上一次:

git diff HEAD HEAD^.(這個命令在windows上可能有點問題, 請使用git bash):

使用視覺化工具:

git difftool HEAD HEAD^:

HEAD^表示上一次commit, HEAD^^就表示上兩次的commit, 以此類推, 也可以使用HEAD~2的形式, 它和HEAD^^是一樣的. 也可以連著使用 HEAD^^~3就像當於HEAD^^^^^.

 

本地 vs 遠端.

git diff master origin/master. (origin是遠端github的引用名而已, 這個可以改.) 這就是比較本地和遠端的master分支.

同樣也可以使用視覺化工具: git difftool master origin/master:

 

最後git push origin master.

 

本文就簡單介紹了這些: p4merge, difftool, mergetool, git diff, git difftool, 各種情況的git diff.

 

相關文章