使用git-diff時如何忽略某些檔案
最近遇到這樣的需求:我需要把某兩次提交之間的程式碼變化diff出來,給另外一位童鞋去apply,但是diff的時候我又想忽略其中某幾個檔案(比如:自動化生成出來的類似build.js,dist.js之類的檔案)。於是鼓搗了一番,找到了如下解決辦法:
- 設定git-diff 自定義driver
- 在gitattributes中設定要忽略的路徑和規則,使得對build.css和build.js做git-diff的時候有直接掉過的效果
設定git-diff driver
git支援自定義diff驅動器(見其中diff.driver.command的說明),意思是說git-diff的時候可以指定一個命令去跑,而不是跑內建的。有了這個配置支援,我們就可以設定如下nodiff的指令(在專案根路徑):
git config diff.nodiff.command /usr/bin/true
這個指令幹嘛呢?這個指令什麼都不幹,直接返回true(/usr/bin/true),這樣就有了類似跳過的效果。
設定git attributes
關於git attributes可以直接看官方文件說明 ,我們利用這個特性在專案根目錄中,建立一個.gitattributes檔案,並新增如下配置:
build.css diff=nodiff
build.js diff=nodiff
好了現在我們就可以連起來理解了,當我們執行git diff命令的時候,git就會讀取.gitattributes的配置,然後發現遇到build.css和build.js檔案的時候,需要執行nodiff指令,而nodiff指令被我們此前配置成了/usr/bin/true直接返回true,於是,就直接“跳過”了。
這裡檔案路徑的配置和.gitignore是一樣的,支援目錄,檔案,萬用字元之類的,可以輕鬆實現忽略一批檔案或者整個目錄。
相關文章
- Git上傳時忽略某些檔案Git
- IDEA忽略某些檔案Idea
- Git 小技巧:忽略某些檔案的更改Git
- 忽略某些檔案 —— Git 學習筆記 05Git筆記
- 使用ln同步檔案內容,支援忽略檔案
- 如何在“我的所有檔案”中隱藏某些檔案?
- Git忽略檔案.gitignore的使用Git
- Git——.gitignore 忽略檔案和忽略已經提交過的檔案Git
- 忽略特殊檔案(轉載)
- 忽略檢測png檔案
- git 忽略跟蹤檔案Git
- git的忽略檔案和刪除檔案操作Git
- iOS SVN忽略檔案設定iOS
- 使用svn進行檔案和資料夾的忽略
- 重建控制檔案後某些檔案被命名為MISSINGnnnnnGNN
- 某些檔案只能放在tomcat\bin 下面?Tomcat
- git 入門教程之忽略檔案Git
- .gitignore忽略跟蹤指定檔案Git
- Git 忽略已經提交的檔案Git
- git 忽略已提交過的檔案Git
- 修改所有xml檔案中的某些內容XML
- AIX上打包排除某些檔案/資料夾AI
- 提交專案到GitHub要忽略哪些檔案呢?Github
- GitHub官方Unity的.gitignore忽略檔案GithubUnity
- 如何使用python指令碼定時清空檔案內容?Python指令碼
- maven編譯時如何忽略單元測試Maven編譯
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- php檔案Hash如何使用PHP
- 使用tar打包,如何排除某些資料夾呢?
- Git命令git update-index --assume-unchanged,忽略不想提交的檔案(忽略跟蹤)GitIndex
- git 強制忽略加入版本控制的檔案Git
- 使用touch命令修改檔案時間
- Laravel 自定義表單請求驗證忽略某些欄位驗證Laravel
- 檔案-臨時檔案
- python 配置檔案如何使用Python
- 使用主題檔案(包含CSS檔案)時遇到的問題CSS
- 如何同時複製、分類檔案
- [20220427]ls 忽略特定檔案.txt