由于我在最近的項目中修改的文件很多粱哼,所以在上線前會審查一下自己的代碼,和之前的版本diff一下檩咱。經(jīng)過自己的實踐揭措,掌握了一點點技巧,給大家分享一下刻蚯,歡迎吐槽交流绊含。本文將會涉及git命令行工具,Araxis Merge炊汹,Github網(wǎng)頁diff, SourceTree等工具的diff方法躬充。
?1 .git 命令行工具
當(dāng)diff的文件只是一個或幾個文件時,使用命令行手動diff讨便,直接在命令行敲命令比較方便
- 查看一個文件的commit歷史
git log -- filepath
結(jié)果如下充甚,會列出這個文件的最近的修改歷史:
- 查看一個文件的commit歷史和詳細(xì)的修改內(nèi)容
git log -p -- filepath
結(jié)果如下:
這個diff方法可以查看最近幾次的簡單的修改,如果只是查看最近一兩次簡單的修改?還ok霸褒,但如果一個文件首先加入了一些代碼伴找,然后這些代碼又被多次修改,這是很常見的事情废菱,我們想查看我們從一次提交到另外一次提交到底修改了什么技矮,這個命令就顯得不夠用了,這時我們使用下一個命令殊轴。
- 查看一個文件的兩次commit之間的修改
git diff commit1:filepath commit2:filepath
舉例來說衰倦,首先我們直接用git log找到我們需要diff的兩次提交的commit id,然后找到diff某個文件:
這個命令會直接將這兩次提交之間的修改diff出來梳凛,十分方便耿币。此外梳杏,你也可以直接查看這個版本以來這個文件被修改了什么內(nèi)容:
直接使用分支名或者標(biāo)簽名來代替commit id是可以的韧拒,因為git中分支和標(biāo)簽僅僅是指向節(jié)點的指針淹接,代表一個節(jié)點。
diff命令也可以直接對比兩個結(jié)點之間的所有文件的修改叛溢,然而當(dāng)修改的文件過多時塑悼,這個命令在命令行中感覺并不好用,因為顯示的文件太多了楷掉,比較亂厢蒜。
git diff commit1 commit2
查看歷史修改內(nèi)容我一直使用的是Github客戶端,用了很久了烹植,感覺拿它來查看文件的修改和提交歷史還是挺不錯的斑鸦。下載這個工具請參考:https://desktop.github.com/
2 .Araxis Merge工具
Araxis Merge工具是我在項目對比中使用的最早的對比工具,這個工具可以對比兩個文件或兩個文件夾草雕,顯示的對比界面其實還是比較容易看的巷屿,但這個工具只能對比兩個文件夾,所以diff之前墩虹,我首先需要先把我的項目文件夾copy一?份嘱巾,然后把兩個文件夾拖進(jìn)Araxis Merge的窗口中,然后它會自動進(jìn)行diff诫钓。我不太喜歡每次diff前copy旬昭,讓我覺得很麻煩(還有個原因可能是我覺得它界面不fashion?顯得比較笨)菌湃,不過它的樹形展示結(jié)構(gòu)還不錯问拘,所以這里給出一個效果截圖,有興趣的同學(xué)自己下一個玩一玩惧所。
3 .github網(wǎng)頁diff工具
這個工具我只是在查找這些工具時發(fā)現(xiàn)的场梆,主要是對github倉庫中的代碼進(jìn)行diff,按照如下格式訪問url即可纯路。
http://github.com/<USER>/<REPO>/compare/[<START>...]<END>
結(jié)果是一個包含了提交歷史記錄和修改文件的列表的網(wǎng)頁或油,效果圖如下,我只能說相比之前的diff好看很多好嘛-_-||驰唬,然而公司的項目并不在github上:
想要了解github這個工具的更多詳情顶岸,請參考
https://github.com/blog/612-introducing-github-compare-view
4 .SourceTree
SourceTree是我找到的最好用的diff工具吧,長相雖然不算好看叫编,也不算丑吧辖佣。先看看它長什么樣子:
這個軟件我才用不久,兩個diff方法我挺喜歡的:
-
查看單個文件的修改歷史
在左下的框框中選中需要diff的文件搓逾,呼出菜單卷谈,第一個選項叫做查看選中的修改日志
,點擊進(jìn)入文件的修改詳情列表
然后可以看到對這個文件的修改記錄霞篡,看起來就像是diff命令行的圖形化版本世蔗。 -
diff神技
在上一個界面端逼,Mac按住command鍵,再選擇一行污淋,Oh I'm shocked顶滩。
直接顯示出了這個文件的兩次提交的diff,行數(shù)和修改都列的很清楚寸爆。感覺還不夠方便礁鲁? 回到提交歷史界面,按住command鍵選擇兩次提交赁豆,直接顯示出這兩次提交的所有文件的diff仅醇,速度相當(dāng)快。
使用第一方法可以直接review文件魔种,第二種方法可以直接review整個項目着憨,我覺得都是很方便的。SourceTree這個軟件也是免費的务嫡,官網(wǎng)地址
https://www.sourcetreeapp.com/
歡迎討論吐槽甲抖!