Frage

Wie kann ich ignorieren Verzeichnisse oder Ordner in Git mit msysgit unter Windows?

War es hilfreich?

Lösung

Erstellen Sie eine Datei mit dem Namen .gitignore in Ihrem Projektverzeichnis. Ignorieren Verzeichnisse durch die Verzeichnisnamen in die Datei eingeben (mit einem Schrägstrich angehängt):

dir_to_ignore/

Weitere Informationen hier .

Andere Tipps

Mit dem Standard-Windows-Explorer wird .gitignore angezeigt, wenn in-fact der Dateiname .gitignore.txt ist

Git nicht verwenden .gitignore.txt

Und Sie können nicht die Datei umbenennen, um .gitignore weil Explorer seine eine Datei vom Typ gitignore denkt ohne Namen.

Non-Befehlszeile Lösung:

You can rename a file to ".gitignore." and it will create ".gitignore"

Es scheint, dass für Dateien und Verzeichnisse zu ignorieren gibt es zwei Möglichkeiten:

  1. .gitignore

    • Einlegen .gitignore-Datei in das Stammverzeichnis Ihrer Repo neben .git Ordner (in Windows stellen Sie sicher, sehen die wahre Dateierweiterung und dann .gitignore. machen) (mit dem Punkt am Ende leer Dateierweiterung zu machen)
    • Globale Konfiguration ~/.gitignore_global und läuft git config --global core.excludesfile ~/.gitignore_global diese zu Ihrem git config hinzufügen

    Hinweis: Dateien, bevor nachverfolgt können durch Ausführen git rm --cached filename untracked sein

  2. Repo ausschließen - Für lokale Dateien, die gemeinsam genutzt werden, müssen nicht, können Sie einfach die Datei oder das Verzeichnis Muster in die Datei .git/info/exclude hinzuzufügen. Thesen Regeln nicht verpflichtet sind, so nicht von anderen Benutzern gesehen weitere Informationen hier

[aktualisiert] Um Ausnahmen in der Liste der ignorierten Dateien zu machen, finden Sie unter diese Frage .

Ich hatte einige Probleme eine Datei im Windows-Explorer mit einem zu schaffen. am Anfang.

war eine Abhilfe in die Commandshell zu gehen und eine neue Datei mit „Bearbeiten“

erstellen

GIT anweisen, bestimmte Dateien oder Ordner zu ignorieren, haben Sie .gitignore Datei erstellen.

aber in Windows Explorer Sie einen Namen für die Datei zur Verfügung stellen müssen, die Sie gerade nicht Datei mit nur Erweiterung erstellen können, ist der Trick, dass eine leere Textdatei erstellen und gehen prompt zu gebieten und den Namen der Datei .gitignore ändern

ren "New Text Document.txt" .gitignore

öffnen nun die Datei mit einem Texteditor und fügen Sie die Datei / Ordner-Namen, die Sie wünschen Sie ignorieren. Sie können auch Platzhalter verwenden, wie diese *.txt

hoffen, dass es Antworten Sie Frage

Wenn Sie einen Ordner beibehalten möchten und die Dateien nicht im Inneren, legen sich lediglich ein „.gitignore“ Datei in dem Ordner mit ‚*‘ als Inhalt. Diese Datei wird alle Inhalte aus dem Repository ignorieren. Aber .gitignore wird in Ihrem Repo sein enthalten.

$ git add path/to/folder/.gitignore

Wenn Sie leere Ordner hinzufügen, erhalten Sie diese Meldung (.gitignore ist versteckte Datei)

The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added

So verwenden "-f" zu zwingen, add:

$ git add path/to/folder/.gitignore -f

In Windows gibt es ein extra Fang mit Schrägstrichen. Ohne ein einzelnes Verzeichnis in .gitignore mit

  

dir_to_exclude /

wird möglicherweise funktionieren, aber ohne alle Verzeichnisse mit

  

/

Probleme verursacht, wenn Sie Dateinamen mit Leerzeichen haben (wie my file.txt) in Ihrem Verzeichnis. Git Bash entkommt diese Räume mit einem Backslash (wie my\ file.txt) und Git für Windows unterscheidet nicht zwischen / und \

Für alle Verzeichnisse eine bessere Nutzung ausschließen:

  

** /

Zwei aufeinanderfolgende asteriscs bedeutet Verzeichnisinhalt.

Auch in Ihrem \.git\info Projekten Verzeichnis gibt es eine Datei ausschließen, die effektiv die gleichen wie .gitignore ist (glaube ich). Sie können Dateien und Verzeichnisse hinzufügen, dass zu ignorieren.

ein ganzes Verzeichnis in git zu ignorieren, ist der einfachste Weg, um eine .gitignore Datei im Zielverzeichnis aufzunehmen, die einfach enthält „*“

Ein anschauliches Beispiel:

Beispiel System

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

Ziel

  • ignoriert den Inhalt von / dirB /

Top Level .gitignore (/root/.gitignore)

  • Hier wird Ihre Standard gitignore info geht

Ignoriert Verzeichnis .gitignore (/root/dirB.gitignore)

  • Diese Datei nur liest als ‚*‘ und das Verzeichnis wird ignoriert, sich vollständig und alle Dateien!

und es ist so einfach:)

Für den Fall, Sie Unterordner ausschließen müssen, können Sie den ** Platzhalter jede Ebene des Unterverzeichnisses auszuschließen.

**/build/output/Debug/

Ich habe einige Probleme hat die .gitignore Datei unter Windows immer git Pickup. Die $ GIT_DIR / info / Ausschlussdatei scheint allerdings immer zu arbeiten. Der Nachteil dieses Ansatzes ist jedoch, dass die Dateien im $ GIT_DIR Verzeichnis nicht in der Check-in enthalten und deshalb nicht mit anderen geteilt.

(P. S. $ GIT_DIR ist in der Regel der versteckten Ordner mit dem Namen .git)

Sie können die ".gitignore" Datei mit dem Inhalt erstellen:

*
!.gitignore

Es funktioniert für mich und simples.

Wenn alles andere fehlschlägt versuchen, die Datei bearbeiten

  

/. Git / info / ausschließen

und das Hinzufügen der Verzeichnisse, die Sie an das Ende der Datei möchten, wie folgt aus:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/

Ich habe die Ordner „Assets“ und „zusammengestellt“, um die Liste der Dateien und Verzeichnisse zu ignorieren.

Ich nehme an, das Problem ist, dass Ihre Arbeits Baum ist wie:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... mit dem .gitignore Sie beschreiben. Dies wird Ihnen git status Ausgabe wie:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
#   a-cache/
#   b-cache/

... , wenn die index.html Dateien noch nicht in das Repository hinzugefügt. (Git sieht, dass es unignored Dateien in den Cache-Verzeichnissen, sondern meldet nur die Verzeichnisse.) Um dies zu beheben, stellen Sie sicher, dass Sie hinzugefügt haben und verpflichtet sich, die index.html Dateien:

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... und git status wird dann wie folgt aussehen:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)

(Natürlich wollen Sie .gitignore auch begehen, war ich nur faul mit diesem Testfall.)

Auf Unix:

touch .gitignore

Unter Windows:

echo > .gitignore

Diese Befehle in einem Terminal ausgeführt werden eine .gitignore Datei im aktuellen Speicherort erstellen.

Dann fügen Sie einfach Info diese .gitignore-Datei (mit Notepad ++ zum Beispiel), die Dateien oder Ordner ignoriert werden sollen. Speichern Sie Ihre Änderungen. Das ist es:)

Weitere Informationen: https://www.atlassian.com/git/ tutorials / Speichern-Änderungen / gitignore

Unter Windows und Mac, wenn Sie einen Ordner mit dem Namen Flower_Data_Folder im aktuellen Verzeichnis ignorieren mögen, können Sie tun:

  

echo Flower_Data_Folder >> .gitignore

Wenn sie eine Datei mit dem Namen data.txt

  

echo data.txt >> .gitignore

Wenn es ein Weg wie "Data / passwords.txt"

  

echo "Data / passwords.txt" >> .gitignore.

Ich hatte ähnliche Probleme, ich auf einer Windows-Tool-Kette mit einem gemeinsamen Repo arbeite mit Linux Jungs, sie Happlily-Dateien erstellen, mit der gleichen [mit Ausnahme von Fall] Namen in einem bestimmten Ordner.

Der Effekt ist, dass ich den Repo klonen und sofort Dutzende von ‚geändert‘ Dateien hat, dass, wenn ich eingecheckt schaffen würde Chaos.

Ich habe Windows empfindlich und git Fall auf nicht Fall zu ignorieren, aber es immer noch nicht (in den Win32-API Anrufen scheinbar).

Wenn ich die Dateien gitignore dann muss ich mich nicht daran erinnern, die .gitignore Datei zu verfolgen.

Aber ich fand eine gute Antwort hier http: // Archiv .robwilkerson.org / 2010/03/02 / git-Spitze-ignore-Änderungen zu nachverfolgt-files / index.html

Chris

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top