Đây là cách bạn loại có thể làm điều đó với git filters:
- Tạo/Open gitattributes file:.
- < dự án root>/gitattributes (sẽ được cam kết vào repo)
HOẶC
- < gốc dự án> /. Git/info/attributes (sẽ không được cam kết thành repo)
- Thêm một dòng xác định các tập tin được lọc:
*.rb filter=gitignore
, tức là bộ lọc chạy tên gitignore
trên tất cả các *.rb
file
- Xác định các bộ lọc
gitignore
trong gitconfig
của bạn:
$ git config --global filter.gitignore.clean "sed '/#gitignore$/'d"
, tức là xóa những dòng này
$ git config --global filter.gitignore.smudge cat
, tức là không làm gì khi kéo tệp từ repo
Ghi chú:
Tất nhiên, đây là cho các tập tin ruby, áp dụng khi một dòng kết thúc với #gitignore
, áp dụng trên toàn cầu trong ~/.gitconfig
. Sửa đổi điều này tuy nhiên bạn cần cho các mục đích của bạn.
Cảnh báo !!
Điều này khiến tệp của bạn khác với repo (tất nhiên). Bất kỳ kiểm tra hoặc rebasing sẽ có nghĩa là những dòng này sẽ bị mất! Thủ thuật này có vẻ vô dụng vì những dòng này liên tục bị mất khi kiểm tra, rebase hoặc pull, nhưng tôi đã sử dụng một trường hợp cụ thể để sử dụng nó.
Chỉ git stash save "proj1-debug"
trong khi bộ lọc không hoạt động (chỉ cần tạm thời tắt bộ lọc trong gitconfig
hoặc thứ gì đó). Bằng cách này, mã gỡ lỗi của tôi luôn có thể là git stash apply
'd vào mã của tôi bất kỳ lúc nào mà không sợ những dòng này từng bị vô tình cam kết.
Tôi có một ý tưởng có thể để giải quyết những vấn đề này, nhưng tôi sẽ thử triển khai nó một thời gian khác.
Nhờ Rudi và jw013 đề cập đến bộ lọc git và gitattributes.
Tôi không thể biết đây là một ý tưởng khủng khiếp hay một . –
@KyleStrand ít nhất, tôi có thể thêm nó vào các dòng gỡ lỗi mà tôi nhập và cảm thấy an toàn khi biết rằng họ sẽ không vô tình cam kết – Kache
Phải, đó là phần "rực rỡ". –