Có những file hoặc folder chúng ta luôn luôn phải ignore hoặc khi làm chung với những dev sử dụng hệ điều hành khác, editor khác thì lại không sinh ra file đó. Vì vậy một cách tốt hơn đó là ignore global. Có nghĩa là bạn sẽ không cần phải ignore những file như .DS_Store
cho từng repo nữa. Chỉ cần ignore một lần là đủ.
Lấy một ví dụ, nếu bạn dùng JetBrain IDE sẽ sinh ra .idea
nhưng một dev khác lại dùng VSCode thì sinh ra .vscode
. Như vậy để file .gitignore
của repo được gọn hơn thì chúng ta nên ignore global.
Cài đặt
Cách làm cũng khá đơn giản với 3 bước sau:
Bước 1: Tạo một file để chứa nội dung cần ignore:
$ touch ~/.gitignore
Bước 2: Config git để sử dụng file này:
$ git config --global core.excludesfile ~/.gitignore
Lưu ý rằng command phía trên không tạo ra file .gitignore
. Mà nó sẽ thêm một dòng config vào dưới section core
trong file .gitconfig
.
excludesfile = ~/.gitignore
Bước 3: Thêm những gì muốn ignore vào file .gitignore
$ vim ~/.gitignore
.DS_Store
.idea/
Như vậy Git đã có thể ignore tất cả các file .DS_Store
và folder .idea/
cho các repo của mình mà không cần phải cấu hình riêng cho từng file .gitignore
.
Một số gitignore phổ biến
Không có gì là quá mới lạ trong ngành này, kể cả ignore cũng thế. Bạn có thể tìm thấy rất nhiều file ignore thường dùng tại repo của Github: github/ignore .
Hoặc thậm chí là một công cụ generate file ignore cho các stack mà bạn sử dụng: ignore.io .
Tuy nhiên cũng có một vài ý kiến cho rằng không nên dùng cách này, vì những người khác coloborate vào thì họ sẽ không có chung một file gitignore global như chúng ta. Thay vào đó bỏ tất cả vào .gitignore
thì tốt hơn. Không biết quan điểm của các bạn như thế nào? Hãy cùng bình luận nhé!
Một vài ví dụ khác
Updated by tatthien - 01-10-2021
Gần đây mình sử dụng .gitignore
global này để ignore thêm những file mình thêm vào project như nodes.md
, plantuml
. Làm như vậy sẽ thoải mái thêm files mình muốn mà không cần phải update .gitignore
của project nữa.
Hoặc mình dùng nvm
để switch version của Nodejs, mình có thể gán version cho project cụ thể thông qua file .nvmrc
. Tuy nhiên team mình không sài nvm
vì vậy file .nvmrc
không thể bỏ vào project được.
$ cat ~/.config/.gitignore
.DS_Store
.idea/
.nvmrc
.vscode/
.notes.md
.prettierignore