Tôi biết tôi đến trễ bữa tiệc, nhưng đây là câu trả lời của tôi.
Như @Joakim đã nói, để bỏ qua một tập tin, bạn có thể sử dụng một cái gì đó như dưới đây.
# Ignore everything
*
# But not these files...
!.gitignore
!someFile.txt
nhưng nếu tệp nằm trong các thư mục lồng nhau, sẽ hơi khó để viết các quy tắc theo cách thủ công.
Ví dụ: nếu chúng ta muốn bỏ qua tất cả các tệp trong một git
dự án, nhưng không phải a.txt
là tệp nằm trong đó aDir/anotherDir/someOtherDir/aDir/bDir/cDir
. Sau đó, chúng tôi .gitignore
sẽ là một cái gì đó như thế này
# Skip all files
*
# But not `aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt`
!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
Các .gitignore
tập tin đã cho ở trên sẽ bỏ qua tất cả các thư mục và tập tin ngoại trừ!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
Như bạn có thể đã lưu ý, thật khó để xác định các quy tắc đó.
Để giải quyết trở ngại này, tôi đã tạo một ứng dụng bảng điều khiển đơn giản có tên git-do-not-ign để tạo ra các quy tắc cho bạn. Tôi đã tổ chức dự án trong github với hướng dẫn chi tiết.
Ví dụ sử dụng
java -jar git-do-not-ignore.jar "aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt"
Đầu ra
!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
Cũng có một phiên bản web đơn giản có sẵn ở đây
Cảm ơn bạn.