2015-09-16 35 views
7

當且僅當存在另一個名爲foo.txe的文件時,我想告訴git忽略名爲foo.ext的文件。我幾乎可以肯定,這不能用.gitignore語法來完成,但也許有其他棘手的方法,我想不出來?如何告訴git忽略某個文件當且僅當另一個文件存在?

使用示例:我經常將LaTeX文檔的圖形存儲在名爲figures的子目錄中。我通常用Xfig來設計我的數字。我的makefile調用fig2dev來從figures/foo.fig源對文件:

  • figures/foo.pdf,爲顯卡部分PDF文件,
  • figures/foo.pdf_t,文本一個LaTeX文件,與includegraphics命令包括PDF。

由於生成這兩個文件,我想git忽略它們。我可以將兩個簡單的排除模式添加到我的.gitignore文件中,但它也發生在我的一些數字是純PDF格式,而不是從其他來源生成的。當然,我想git不要忽略這些figures/bar.pdf文件。

我想是這樣補充:

/\(**\)/figures/\(*\).fig: /\1/figures/\2.pdf /\1/figures/\2.pdf_t 

.gitignore文件,這意味着任何文件名爲/<some_path>/figures/<some_name>.pdf/<some_path>/figures/<some_name>.pdf_t應該被忽略當且僅當具有相同<some_path>存在一個名爲/<some_path>/figures/<some_name>.fig文件<some_name>

+0

可能的複製文件而不同後綴名的文件存在](http://stackoverflow.com/questions/28325195/gitignore-a-file-if-file-with-different-extension-exists) –

回答

2

您需要在文件名或文件夾中使用某些內容來確定哪些文件是自動生成的,哪些不是。根據您的代碼安裝方式,您可以根據文件夾進行忽略。例如,對於自動生成的文件使用figure-auto,對於手動創建的文件使用figure

figure-auto/

如果只有你不想忽略的幾個文件,你可以使用如的[Gitignore

figures/*.pdf 
figures/*.pdf_t 
!figures/keep-in-source-control.pdf 
!figures/manually-created.pdf 

Git Ignore Pattern Format

+0

我知道如何使用'.gitignore',這不是我所知道的尋找,但謝謝,我感激你我們的幫助。 –

相關問題