Bedingtes Gitigignorieren

Lesezeit: 2 Minuten

Ich habe ein Git-Repo, in dem ich meine persönlichen Dokumente speichere. Einige dieser Dokumente sind LaTeX-Dateien und einige sogar PDFs. Ich möchte natürlich, dass sie in meinem Dokumenten-Repo sind.

Aber wenn ich ein Dokument im Org-Modus erstelle (*.org), baue ich es oft, was dazu führt, dass diese Dateien erstellt werden, wenn das Dokument im Org-Modus aufgerufen wird α:

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

Ich möchte sie nicht verfolgen, da es sich um generierte Dateien handelt, von denen ich den Quellcode habe, aber ich kann nicht einfach alle ignorieren *.tex und nicht einmal alle *.pdf Dateien.

Kann A .gitignore gesagt werden, jede Datei zu ignorieren, deren Name ist α.tex oder α.pdf wenn es eine Datei mit dem Namen gibt α.org mit α eine Variable für eine beliebige Zeichenfolge sein?

  • Anstatt diese Dateien zu ignorieren, wäre es vielleicht einfacher, sie einfach zu entfernen: emacs.stackexchange.com/questions/23982/…

    – Jules

    13. Dezember 2016 um 21:16 Uhr

  • Erstellen Sie diese Dateien in einem Ordner, der in Ihrer Gitignore-Datei ignoriert wird.

    – Nsukami _

    13. Dezember 2016 um 21:26 Uhr

  • @Jules Funktioniert nicht. Diese Methode beseitigt die *.tex Datei und kann die loswerden *.pdf Datei, aber ich möchte letztere verwenden. Darüber hinaus kann diese Methode die nicht entfernen *.el Datei, wahrscheinlich weil sie sich in einem anderen Verzeichnis befindet. Ich sehe jedoch, wie eine Lösung auf der Seite von Emac möglich ist: Wenn es möglich wäre, die Dateien in einem Verzeichnis mit einem bestimmten Namen zu erstellen (egal, ob es das gleiche Verzeichnis für alle Dateien ist, egal wo sie sich befinden oder ob es in der Standort der *.org Datei, sie muss nur einen bestimmten Namen haben), das würde das Problem lösen.

    – UTF-8

    13. Dezember 2016 um 21:57 Uhr

  • @Nsukami_ Ist das möglich?

    – UTF-8

    13. Dezember 2016 um 21:58 Uhr

  • Sie können gitignore anweisen, einen ganzen Ordner zu ignorieren. Wenn sich die generierten Dateien also unter dem ignorierten Ordner befinden, sollte Ihr Problem gelöst sein. Sie sollten Ihrem Build-Befehl mitteilen, dass er die generierte Datei irgendwo ablegen soll, zum Beispiel im Ordner build/. Fügen Sie dann build/ in .gitignore hinzu. Das ist es.

    – Nsukami _

    14. Dezember 2016 um 1:30 Uhr

Das ist nicht möglich, .gitignore ist eine recht einfache Datei und erlaubt keine bedingten Regeln.

Im Allgemeinen ist es jedoch eine gute Idee, das Build-System so vorzubereiten, dass alle Zwischendateien in einem Build-Verzeichnis generiert werden. Wird oft verwendet build oder target. Dann könnte man einfach reinstecken .gitignore:

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

Wenn die Kompilierung mit Makefile erfolgt, können die Regeln wie folgt aussehen:

target/%.pdf: target/%.tex
         $(LATEX) -o $@ $<
target/%.tex: %.org
         generate_tex -o $@ $<

(Ich bin mir nicht so sicher über die Syntax für Latex und natürlich den spezifischen Befehl zum Generieren *.tex von *.org)

1439540cookie-checkBedingtes Gitigignorieren

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy