Tôi muốn thông báo cho git
để bỏ qua tệp có tên foo.ext
nếu và chỉ khi có một tệp khác có tên foo.txe
. Tôi gần như chắc chắn rằng điều này không thể được thực hiện với cú pháp .gitignore
nhưng có thể có những cách khôn lanh khác mà tôi không nghĩ đến?Làm cách nào để yêu cầu git bỏ qua một tệp nhất định nếu và chỉ khi một tệp khác tồn tại?
Ví dụ về sử dụng: Tôi thường lưu trữ các số liệu của tài liệu LaTeX trong thư mục con có tên figures
. Và tôi thường thiết kế số liệu của mình với Xfig. makefile tôi gọi fig2dev
để tạo ra một cặp tập tin từ figures/foo.fig
nguồn:
figures/foo.pdf
, một tập tin PDF cho phần đồ họa,figures/foo.pdf_t
, một file LaTeX cho các văn bản, với một lệnhincludegraphics
để bao gồm các PDF.
Vì hai tệp này được tạo nên tôi muốn git
để bỏ qua chúng. Tôi có thể thêm hai mẫu loại trừ đơn giản vào tệp .gitignore
của mình nhưng cũng xảy ra rằng một số số liệu của tôi ở dạng PDF thuần túy, không được tạo từ một nguồn khác. Và tất nhiên, tôi muốn git
không bỏ qua các tệp figures/bar.pdf
này.
Tôi muốn thêm một cái gì đó như:
/\(**\)/figures/\(*\).fig: /\1/figures/\2.pdf /\1/figures/\2.pdf_t
đến file .gitignore
của tôi, có nghĩa là bất kỳ tập tin có tên /<some_path>/figures/<some_name>.pdf
hoặc /<some_path>/figures/<some_name>.pdf_t
được bỏ qua nếu và chỉ nếu một file có tên /<some_path>/figures/<some_name>.fig
tồn tại với cùng <some_path>
và <some_name>
.
có thể trùng lặp của [Gitignore một tập tin nếu tập tin với phần mở rộng khác nhau tồn tại] (http://stackoverflow.com/questions/28325195/gitignore-a-file-if-file-with-different-extension-exists) –