2016-12-13 43 views
5

Tôi có một repo git, trong đó tôi lưu trữ tài liệu cá nhân của mình. Một số tài liệu này là các tệp LaTeX và một số thậm chí là các tệp PDF. Tôi tất nhiên muốn họ được trong tài liệu của tôi repo.Điều kiện Gitignore

Nhưng khi tôi tạo ra một tài liệu org-mode (*.org), tôi thường xây dựng nó, dẫn đến những tập tin được tạo ra nếu tài liệu org-mode được gọi α:

  • α.tex
  • α.pdf
  • auto/α.el

tôi không muốn để theo dõi chúng khi chúng được tạo ra file trong số đó tôi có mã nguồn nhưng tôi không thể chỉ đơn giản là bỏ qua tất cả 0.123.và thậm chí không phải tất cả các tệp *.pdf.

một .gitignore Có thể nói để bỏ qua tất cả các tập tin có tên là α.tex hoặc α.pdf nếu có một tập tin gọi là α.org với α là một biến cho một chuỗi tùy ý?

+0

Thay vì bỏ qua những tệp đó, có thể sẽ dễ dàng hơn khi chỉ xóa chúng: http://emacs.stackexchange.com/questions/23982/cleanup-org-mode-export-intermediary-file – Jules

+2

buil d các tệp đó bên trong một thư mục sẽ bị bỏ qua trong tệp gitignore của bạn. –

+0

@Jules Không hoạt động. Phương thức đó loại bỏ tệp '* .tex' và có thể loại bỏ tệp' * .pdf' nhưng tôi muốn sử dụng tệp sau. Hơn nữa, phương thức đó không thể xóa tệp '* .el', có lẽ vì nó nằm trong một thư mục khác. Tuy nhiên, tôi có thể thấy một giải pháp về phía Emac: Nếu có thể xây dựng các tập tin vào một thư mục với một tên cụ thể (không quan trọng cho dù đó là cùng một thư mục cho tất cả các tập tin không bị mờ vị trí của nó hay không) vị trí của tệp '* .org', nó chỉ phải có một tên cụ thể), điều đó sẽ giải quyết được vấn đề. –

Trả lời

3

Điều này là không thể, .gitignore là tệp khá đơn giản và không cho phép bất kỳ quy tắc có điều kiện nào.

Tuy nhiên, ý tưởng chung là chuẩn bị hệ thống xây dựng để tạo tất cả các tệp trung gian vào một số thư mục xây dựng. Thường được sử dụng build hoặc target. Sau đó, bạn chỉ đơn giản là có thể đưa vào .gitignore:

/target #/specifies the root path 
/auto # probably your temporary files...? 

Nếu biên dịch được thực hiện với Makefile, các quy tắc có thể trông giống như:

target/%.pdf: target/%.tex 
     $(LATEX) -o [email protected] $< 
target/%.tex: %.org 
     generate_tex -o [email protected] $< 

(không chắc chắn rất nhiều về cú pháp cho mủ và tất nhiên các cụ lệnh để tạo *.tex từ *.org)