Thinker
git diff 有一點讓人很困擾。在一個檔案刪除一些內容,又加入一些新的內容。 git diff 的作法是列出被刪除的那些內容,然後再加入新的內容。這聽起來很合理,但看起來就很痛苦。

例如,我把一個 block 改寫後,隔了一行,又改寫了另一個 block。那 git diff 的結果會是

- <old block 1>
+<new block 1>

-<old block 2>
+<new block 2>

但如果能改成

-<old block 1>
+<new block 1>

+<new block 2>
-<new block 2> 其閱讀性就會高很多。
Thinker
甚至改成

-<old block 1>
-
-<old block 2>
+<new block 1>
+
+<new block 2>

會更好
yipo🌿
可以外掛一些第三方 diff 工具,比如 VS Code 或 Beyond Compare,看 diff 就會舒服許多。
Thinker
剛寫了一個 script,把間隔一行或兩行相臨的 block 合併。這樣看起來順眼多了。
Thinker
https://images.plurk.com/4Iec1Fyh2oVc7c6csNpZsW.jpg 左邊是原來 git diff 產生的內容,右邊是簡化後的版本。
Thinker
第一個 chunk 原本零散的幾個 block,被合併成兩大塊。以第一個 function 為例,中間只有一行是相同,再加上一行空白行,可以說是整個重寫。script 整理過後,就直接合併成一大塊。
載入新的回覆