GITIGNORE LÀ GÌ

Bạn đang quan tâm đến GITIGNORE LÀ GÌ phải không? Nào hãy cùng TTTD đón xem bài viết này ngay sau đây nhé, vì nó vô cùng thú vị và hay đấy!

XEM VIDEO GITIGNORE LÀ GÌ tại đây.

GITIGNORE LÀ GÌ

Git là một công cụ tuyệt vời để theo dõi tất cả các tệp trong một dự án.Cho dù bạn chỉ có một vài file hay vàingàn file dự án để theo dõinhưng có một số file không nhất thiếtbạn phảitheo dõi nó trong suốt vòng đời của dự án. Hãy xem Git giúp gì cho bạn trong trường hợp này nhé!

Trong bài viết này, chúng ta sẽ tìm hiểu nguyên nhân tại sao chúng ta nên “nói” với Git bỏ qua một số file nhất định. Cách làm điều đó như thế nào và một số ví dụ thực tiễn tốt nhất cho bạn

Tại sao nên sử dụng .gitignore?

Bỏ qua thủ công các file mà bạn không muốn theo dõi có thể quản lý được trong một dự án quy mô nhỏ, nhưng ngay khi dự án của bạn bắt đầu phát triển và nó có đến hàng chục hoặc hàng trăm file không được kiểm soát phiên bản, thì chắc chắn đó một vấn đề lớn sẽ khiến bạn đau đầu. Các file này sẽ bắt đầu làm lộn xộn danh sách “Các file không bị theo dõi” trong đầu bạn, điều này có thể khiến bạn bỏ qua các file hợp pháp cần có trong repository.Bạn đang xem: Gitignore là gìĐể giải quyết vấn đề này, Git có một cơ chế “bỏ qua” dưới dạng một file được gọi .gitignore. Với file này và cách khai báo mẫu rất đơn giản, bạn có thể cho Git biết loại file nào bạn muốn nó bỏ qua và không theo dõi trong repo của bạn. Nếu tên file trong dự án của bạn khớp với một trong các mẫu có trong .gitignorefile thì Git sẽ không cố theo dõi file và nó sẽ không hiển thị trong danh sách “File không bị theo dõi”Untracked files

Vậy phải bỏ qua “ignore”những tập tin nào?

Điều này tùy thuộc vào sở thích cá nhân, nhưng nói chung chúng ta nên cóxu hướng tuân theo các quy tắc chung này về các file không theo dõi như sau:

– Các file hệ thống (Ví dụ: Trong MacOS:.DS_Store hoặc TTTD.VN)- File cấu hình ứng dụng (Ví dụ: TTTD.VNig, .envvv)- File được build ra trong quá trình biên dịch(Ví dụ: Python*.pyc hoặc các file *.tmp, *.lock)- Thư mục lưu trữ và tìm kiếm các modules (Ví dụ:Trong TTTD.VNó node_modules)- Các file văn bản và filethông tin cá nhân (Ví dụ: TTTD.VN)– Cơ sở dữ liệu và các file lưu log(Ví dụ: *.log, *.sqlite, …)

XEM THÊM:  Thẻ Gocoin Là Thẻ Gì

Có khá nhiều loại file khác thường bị bỏ qua, nhưng rất nhiều trong số này thuộc về sở thích cá nhân, như sau:

– Tập tin cấu hình dev (Ví dụ: .jshintrc)- Các mã nguồn được tạo hoặc rút gọn (Ví dụ:*.min.js)- .gitignore

Vâng, thậm chí ngay cả việc có nên theo dõi file.gitignore trong chính nó cung đang gâytranh luận.Lời khuyên đưa ra ở đây là bạncó thể thay đổi tùy thuộc vào người đang làm việc cùng dự án với bạn, vì bạn có thể muốn thực hiện điều này với một số ít người nhưng với những người khác thì file.gitignore phải khác chẳng hạn. Mọi người đều có ý kiến về những gì nên hoặc không nên theo dõi, vì vậy lựa chọn tốt nhất của bạn là xem xét cả hai mặt của cuộc tranh luận và sau đó tự đưa ra quyết định dựa trên những gì tốt nhất cho dự án của bạn.

Sử dụng .gitignore sao cho hiệu quả nhất

Việc sử dụng tính năng bỏ qua này của Git khá đơn giản, đó là những gì chúng ta sẽ tìm hiểu trong phần này. Gả sử tôi có một dự án nodejs mới với các file chưa được theo dõi sau:

*

Việc theo dõi các file .DS_Store và node_modules/file trong repo của chúng talà hơi thừa, vì vậy tôi sẽ bỏ qua những thứ này. Để làm như vậy, trước tiên chúng ta sẽ tạo một file trong thư mục gốc của dự án có tên .gitignore:

touch .gitignoreCách đơn giản nhất để bỏ qua một file và phổ biến nhất là chỉ cần thêm tên file đầy đủ vào file bỏ qua. Vì vậy, để bỏ qua các file trên, ví dụ, chúng tôi sẽ muốn thêm các file sau:

.DS_Storenode_modulesSau khi lưu, Git sẽ hiển thị cho chúng tôi các file chưa được theo dõi sau đây:

*

Cả hai .DS_Store và node_modules hiện đã đi khỏi danh sách “Untracked files”, nhưng tôi vẫn còn một vài thứ muốn loại bỏ, .env-dev và .env-prod. Để tránh phải thêm từng .gitignorefile một cách rõ ràng (đặc biệt nếu tôi phải thêm nhiều file này cho môi trường thử nghiệm và dàn dựng), tôi sẽ sử dụng ký tự đại diện trong .gitignore như sau:

.DS_Storenode_modules.env-*Và bây giờ danh sách “Untracked files” của chúng ta đã bị giảm hơn nữa. Ký tự đại diện ( * ) sẽ khớp với bất cứ ký tự gì kể từ nó trở đingoại trừ dấu gạch chéo ( / ).Sử dụng hai ký tự đại diện trong một hàng ( ** ) theo sau là dấu gạch chéo sẽ khớp với mẫu của bạn trong tất cả các thư mục.Ví dụ: public/**/*.min.jssẽ bỏ qua tất cả các file JavaScript được rút gọn trong thư mục public, bất kể chúng có nằm trong thư mục con nào của thư mục public.Cơ chế bỏ qua Git cũng hỗ trợ một số cú pháp giống như biểu thức chính quy đơn giản, với một số cú pháp bổ sung của chính nó:

XEM THÊM:  HỒ BÍCH TRÂM SINH NĂM BAO NHIÊU

– <0-9a-za-z>: Khớp với một loạt các ký tự theo mẫu định sẵn- ?: Tối đa 1 ký tự xuất hiện cùng với mẫu- !: Phủ định kết quả khớp hoặc ký tự trước

Ví dụ:

MẫuKhông theo dõiTheo dõiGiải thích*.log!important.logdebug.logtrace.logimportant.loglogs/important.logDấu chấm than ( ! ) sẽ cho một mẫu phủ nhận. Nếu một file phù hợp với một mẫu, nhưng cũng phù hợp với một mẫu phủ định được xác định sau trong tệp, nó vẫn sẽ bị theo dõi.Xem thêm: Mẹ Mai Phương Là Ai – Mẹ Của Diễn Viên Mai Phương Là Aidebug?.logdebug??.logdebug.logdebug20.logdebug20.logdebug.logMỗi dấu hỏi ( ? ) khớp chính xác với mỗi ký tự bất kỳ.debug<0-9>.logdebug.logdebug1.logdebug10.logDấu ngoặc vuông < > được sử dụng để khớp với một ký tự từ một phạm vi được chỉ định.debug.logdebuga.logdebugz.logdebug1.logdebug.logdebugA.logdebugZ.logdebuga.log

Git cũng cho phép bạn thêm nhận xét vào file này, bắt đầu bằng dấu( # ). Điều này rất hữu ích để tổ chức file hoặc thêm giải thích lý do tại sao một số mẫu nhất định đã được thêm vào file .gitignore.

Hệ thống cấp bậc các file .gitignore

Git thực sự kiểm tra nhiều hơn chỉ một file .gitignore được lưu trữcục bộ mà từ đó nó biết được các tập tin nào nên bỏ qua. Như chúng ta đã thấy cho đến nay, vị trí phổ biến nhất là đặt một file.gitignore trong thư mục gốc của dự án của bạn. Một tùy chọn khác là có thêmmột file .gitignorefile khác được đặt trong một thư mục con trong dự án của bạn. Mặc dù ít phổ biến hơn trong thực tế, nhưng điều này có thể hữu ích cho việc áp dụng luật lệ chung vớitoàn bộ file trong dự án nhưng có thể sử dụng luật lệ riêng trên thư mục con mà nó chứa đựng quy tắc riêng.Một tính năng hữu ích khác là tạo ra một tập tin ignore toàn cục. Đây thường là một tập TTTD.VNgnoređược đặt trong thư mục home directory của Git

XEM THÊM:  NHƯ THẾ BẰNG LÒNG CHƯA EM TRIỆU PHONG

$ touch ~/.gitignoreNếu cần, bạn có thể thay đổi vị trí của file toàn cụcnày bằng lệnh sau:

$ git config -global TTTD.VNudesFile ~/.gitignoreNghĩa là bất kỳ mẫu nào được đặt trong file .gitignore toàn cụcnày phải dành cho loại file mà bạn chắc chắn mình sẽ không bao giờ muốn theo dõi nó, chẳng hạn như .DS_Store hoặcTTTD.VN thêm: dbdo OS tự sinh ra. Điều này, giúp bạn dễ dàng hơn trong việc phải thiết lập file .gitignore cho dự án, bạn chỉ cần kiểm tra các file đặc biệt không cần theo dõi trong dự án của mình là đủ vì các file hay gặp đã được chỉ định sẵn trong .gitignore toàn cục.

Commit một file .gitignore

Giả sử bạn có một ngoại lệ đó là bạn muốn tạo ramột filevà file nằm trong mẫu bị bỏ qua trong file .gitignore, nhưng vì lý do gì dự án này đặc biệt cần nó và phải commit cho nó. Trong trường hợp như thế này, bạn có một vài lựa chọn:- Yêu cầu Git không bỏ qua file này bằng cách thêm một tiền tố ( ! ) trong .gitignore, ví dụ:!.env. Điều này sẽ ghi đè bất kỳ file .gitignoretoàn cục hoặc bỏ qua các file trong thư mục cha.- Sử dụng -force tùy chọn (hoặc -f )khi thêmcác file của bạn vào stagging area, nghĩa là git add .env -forceLàm sao để git cũng không theo dõi luôn file .gitignorenếu bạn muốn. Đơn giản, chỉ cần đặt nó vào chính nó. Nghĩa là thêm “.gitignore” vào trong nội dung file .gitignore

Tổng kết

Trong bài viết này, bạnđã thấy cách Git cung cấp một cơ chế để bạn có thểnói với nó những tập tin nào không nên theo dõi trong repo của mình, giúp bạnkhỏi phải theo dõicác tập tin theo cách thủ công. Đây là một tính năng mạnh mẽ cung cấp một cú pháp phong phú, cũng như hệ thống phân cấp để kiểm soát tốt hơn các file nào bị bỏ qua và file nào không.Bạn có thể xem lại các bài tự học JavaTìm hiểu các khóa tự học lập trình

Vậy là đến đây bài viết về GITIGNORE LÀ GÌ đã dừng lại rồi. Hy vọng bạn luôn theo dõi và đọc những bài viết hay của chúng tôi trên website TTTD.VN

Chúc các bạn luôn gặt hái nhiều thành công trong cuộc sống!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *