使用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是一樣的,支援目錄,檔案,萬用字元之類的,可以輕鬆實現忽略一批檔案或者整個目錄。
相關文章
- IDEA忽略某些檔案Idea
- Git 小技巧:忽略某些檔案的更改Git
- 忽略某些檔案 —— Git 學習筆記 05Git筆記
- Git忽略檔案.gitignore的使用Git
- 使用ln同步檔案內容,支援忽略檔案
- 忽略特殊檔案(轉載)
- iOS SVN忽略檔案設定iOS
- .gitignore忽略跟蹤指定檔案Git
- [20220427]ls 忽略特定檔案.txt
- git 入門教程之忽略檔案Git
- git 忽略已提交過的檔案Git
- Git 忽略已經提交的檔案Git
- GitHub官方Unity的.gitignore忽略檔案GithubUnity
- 修改所有xml檔案中的某些內容XML
- 如何使用python指令碼定時清空檔案內容?Python指令碼
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- Visual Studio使用Git忽略不想上傳到遠端倉庫的檔案Git
- php檔案Hash如何使用PHP
- python 配置檔案如何使用Python
- git前端上傳專案忽略本地node_modules檔案Git前端
- Git命令git update-index --assume-unchanged,忽略不想提交的檔案(忽略跟蹤)GitIndex
- Easyexcel匯出時如何隱藏掉某些欄位Excel
- 使用tar打包,如何排除某些資料夾呢?
- 設定IDEA自動忽略GIT提交檔案型別IdeaGit型別
- 【git】透過 .gitignore 檔案來忽略特定的目錄Git
- Laravel 自定義表單請求驗證忽略某些欄位驗證Laravel
- 如何使用python把json檔案轉換為csv檔案PythonJSON
- 如何同時複製、分類檔案
- 解決 git 忽略了不在.gitignore中的檔案的問題,不在.gitignore 中的檔案被忽略了無法提交的的問題Git
- 如何使用curl命令下載檔案
- springboot如何使用自定義配置檔案Spring Boot
- 如何使用CleanMyMac徹底擦除檔案?Mac
- 如何使用Funter檔案隱藏工具
- git 忽略檔案的幾種方式以及應用場景Git
- gitignore 忽略目錄下檔案僅保留目錄形態Git
- 『現學現忘』Git基礎 — 19、Git中忽略檔案Git
- SpringBoot配置檔案使用yml格式時報錯,使用properties格式時正常Spring Boot
- 如何將k8s中的某些節點單獨、僅給某些應用來使用K8S
- win10檔案粉碎如何使用_Win10粉碎檔案功能怎麼使用Win10