Wie ignoriere ich alle Dateien in einem Ordner mit einem Git-Repository in Sourcetree?

86

Ich habe ein Bitbucket Git-Repository, das mit Sourcetree verwaltet wird.

Ich habe zwei Ordner, die ich festschreiben möchte, aber ich muss alle Dateien in diesen Ordnern ignorieren, da sie nur temporäre Dateien enthalten.

Wie kann ich das machen?

rubdottocom
quelle

Antworten:

54

Fügen Sie dies zu .gitignore hinzu:

*
!.gitignore
Gergo Erdosi
quelle
13
Dies sollte in jedem Ordner hinzugefügt werden, den Sie verfolgen möchten. Das Vorhandensein dieser Datei selbst bewirkt, dass git den Ordner verfolgt (indem diese Datei verfolgt wird). Die *Mittel ignorieren alle Dateien, und die !.gitignoreMittel ignorieren nicht die Datei selbst
Billy Moon
2
Wie Billy Moon erklärte, danke. So können Sie Gitignore-Dateien in Verzeichnissen erstellen. Diese Datei sagt Git, was zu ignorieren ist oder was nicht.
Gergo Erdosi
21
Wie machst du das in SourceTree?
1,21 Gigawatt
1
Sie benötigen SourceTree dafür nicht, es .gitginorehandelt sich um eine reguläre Datei. Erstellen Sie sie einfach in dem Verzeichnis, dessen Inhalt Sie ignorieren möchten.
Gergo Erdosi
1
Fügen Sie der Datei nicht ! .Gitignore hinzu, wie von @ AD7six unten erwähnt, da dies nicht erforderlich ist.
Xcalibur
155

Für Sourcetree-Benutzer: Wenn Sie einen bestimmten Ordner ignorieren möchten, wählen Sie einfach eine Datei aus diesem Ordner aus, klicken Sie mit der rechten Maustaste darauf und klicken Sie auf "Ignorieren ...". Sie haben ein Popup-Menü, in dem Sie "Alles darunter ignorieren: <IHR UNGEWÜNSCHTER ORDNER>" ignorieren können.

Erstes Menü

Zweites Menü

Wenn Sie die Option "Ignorieren" ausgegraut haben, müssen Sie die Option "Tracking beenden" auswählen. Danach wird die Datei zu den bereitgestellten Dateien mit einem Minuszeichen auf dem roten Hintergrundsymbol hinzugefügt, und das Dateisymbol in der Liste der nicht bereitgestellten Dateien ändert sich in ein Fragenzeichen auf einem violetten Hintergrund. Jetzt in Liste der nicht bereitgestellten Dateien ist die Option "Ignorieren" wieder aktiviert. Gehen Sie einfach wie oben beschrieben vor.

Kalzem
quelle
14
Wenn der Ordner bereits festgeschrieben ist, löschen Sie ihn zuerst, übernehmen Sie die Änderungen und führen Sie dann die obigen Schritte aus.
RMorrisey
16
Ich habe die Option "Ignorieren" abgeblendet. Weiß jemand warum?
Andrei Karcheuski
6
Ignorieren ist auch für mich ausgegraut.
Micah Zoltu
Ignoriert Ignorieren zu Git Ignorieren? wenn nicht warum nicht?
Joe Lloyd
1
@ JoeLloyd Ja, es fügt hinzu, Git zu ignorieren. Sie können die erstellte / bearbeitete Git-Ignorierdatei sogar wie jede andere Datei festschreiben.
Kalzem
25

Klicken Sie mit der rechten Maustaste auf eine Datei → IgnorierenAlles darunter ignorieren .

Wenn die Option Ignorieren abgeblendet ist, gilt Folgendes:

  1. Stellen Sie zuerst eine Datei bereit
  2. Klicken Sie mit der rechten Maustaste → Tracking beenden
  3. Diese Datei wird im unteren Bereich mit einem Fragezeichen angezeigt → Klicken Sie mit der rechten Maustaste darauf → Ignorieren

Geben Sie hier die Bildbeschreibung ein

Andrei Karcheuski
quelle
7

Soweit ich weiß, verfolgt Git keine Ordner, sondern nur Dateien. Daher können leere Ordner (oder Ordner, in denen alle Dateien ignoriert werden) nicht festgeschrieben werden. Wenn Sie beispielsweise möchten, dass der Ordner aufgrund eines bestimmten Schritts in Ihrem Erstellungsprozess vorhanden ist, können Sie ihn möglicherweise stattdessen von Ihrem Erstellungswerkzeug erstellen lassen? Oder Sie legen eine leere, nicht signierte Datei in den Ordner und schreiben sie fest.

Aasmund Eldhuset
quelle
1
Sie meinen, wenn ich den Ordner verfolgen möchte, muss ich eine "Dummy" -Datei hinzufügen und den Rest ignorieren? : - /
rubdottocom
2
@ Rubdottocom: Ich glaube schon; Ordner existieren in git nur aufgrund der darin enthaltenen Dateien. Warum muss eine leere Ordnerversion gesteuert werden?
Aasmund Eldhuset
2
Es gibt viele Gründe, leere Ordner zu verfolgen. Möglicherweise möchten Sie, dass an einer Kasse der Ordner für die Benutzer bereitsteht, ohne dass Sie ihn einzeln erstellen müssen. Ihr Code hängt möglicherweise von der Existenz eines bestimmten Ordners ab, z. B. eines Ordners, der Uploads erwartet. Wenn der Ordner nicht vorhanden ist, können die Dateien dort nicht hochgeladen werden.
Billy Moon
Aus dem von @AasmundEldhuset erläuterten Grund hat die Antwort von Gergo die richtige Lösung.
Billy Moon
@ BillyMoon: Ich stimme zu, dass es Gründe geben könnte; Ich habe mich gefragt, was seine besonderen Bedürfnisse sind, damit wir die am besten geeignete Lösung vorschlagen können. :-) Gergos Trick war ordentlich, obwohl es sich um das Hinzufügen einer (mehr oder weniger) Dummy-Datei zum Ordner handelt, wie ich vorgeschlagen habe. Seine Lösung war jedoch eher bescheuert, also +1 für ihn.
Aasmund Eldhuset
5

Nachdem ich mir mindestens eine Stunde lang den Kopf geschlagen habe, biete ich diese Antwort an, um zu versuchen, die Kommentare einiger anderer zu erweitern. Gehen Sie wie folgt vor, um einen Ordner / ein Verzeichnis zu ignorieren: Wenn Sie keine .gitignore-Datei im Stammverzeichnis Ihres Projekts haben (dieser Name genau ".gitignore"), erstellen Sie eine Dummy-Textdatei in dem Ordner, den Sie ausschließen möchten. Klicken Sie im Quellbaum mit der rechten Maustaste darauf und wählen Sie Ignorieren. Sie erhalten ein Popup, das so aussieht.

Geben Sie hier die Bildbeschreibung ein

Wählen Sie "Alles darunter" und wählen Sie den Ordner, den Sie ignorieren möchten, aus der Dropdown-Liste aus. Dadurch wird eine Gitignore-Datei in Ihrem Stammverzeichnis erstellt und die Ordnerspezifikation darin abgelegt.

Wenn sich in Ihrem Stammordner bereits ein .gitignore-Ordner befindet, können Sie wie oben beschrieben vorgehen oder einfach die .gitignore-Datei bearbeiten und den Ordner hinzufügen, den Sie ausschließen möchten. Es ist nur eine Textdatei. Beachten Sie, dass Schrägstriche in Pfadnamen anstelle von Schrägstrichen verwendet werden, wie wir Windows-Benutzer es gewohnt sind. Ich habe versucht, eine .gitignore-Textdatei von Hand im Windows Explorer zu erstellen, konnte jedoch keine Datei ohne Namen erstellen (dh nur mit der Erweiterung).

Beachten Sie, dass das Hinzufügen des Gitignore und der Dateispezifikation keine Auswirkungen auf Dateien hat, die bereits verfolgt werden. Wenn Sie diese bereits verfolgen, müssen Sie sie nicht mehr verfolgen. (Klicken Sie mit der rechten Maustaste auf den Ordner oder die Datei und wählen Sie Tracking beenden.) Sie sehen dann, dass sie sich von einem grünen / sauberen oder gelben / geänderten Symbol zu einem roten / entfernten Symbol ändern. Bei Ihrem nächsten Commit werden die Dateien aus dem Repository entfernt und danach mit einem blauen / ignorierten Symbol angezeigt. Ein anderer Mitwirkender fragte, warum Ignorieren für bestimmte Dateien deaktiviert wurde, und ich glaube, das lag daran, dass er versuchte, eine Datei zu ignorieren, die bereits verfolgt wurde. Sie können nur eine Datei mit einem blauen Fragezeichen ignorieren.

Karl Hoaglund
quelle
Verwenden Sie zum Erstellen einer Gitignore-Datei in Widnows den Git-Bash-Befehl 'touch .gitignore'
Mikee
4

Wie von anderen erwähnt: git verfolgt keine Ordner, sondern nur Dateien.

Mit diesen Befehlen (oder einer entsprechenden Logik) können Sie sicherstellen, dass ein Ordner vorhanden ist:

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

Das Vorhandensein der Datei bedeutet, dass jeder, der das Repository auscheckt, über den Ordner verfügt.

Der Inhalt der Gitignore-Datei bedeutet, dass alles, was darin enthalten ist, ignoriert wird

Sie nicht die .gitignore Datei selbst nicht-ignorieren müssen . Es ist eine Regel, die nach ihrer Begehung überhaupt keinen Zweck erfüllen würde.

ODER

Wenn Sie es vorziehen, alle Ihre Ignorierdefinitionen an derselben Stelle zu belassen, können Sie .gitignore im Stammverzeichnis Ihres Projekts mit folgenden Inhalten erstellen:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

und um sicherzustellen, dass die Ordner vorhanden sind

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

"alles" kann buchstäblich alles sein. Häufig verwendete Namen sind .gitignore, .gitkeep, leer.

AD7six
quelle
3

Wenn Ihre Option " Ignorieren" abgeblendet ist, müssen Sie die Verfolgung der Datei beenden, bevor Sie sie ignorieren können. Sie können einfach mit der rechten Maustaste auf die Datei klicken und auf "Tracking beenden" klicken.

Daneben sollte ein blaues Symbol angezeigt werden. Klicken Sie erneut mit der rechten Maustaste darauf und klicken Sie auf Ignorieren.

LeRoy
quelle
2

Ignorieren Sie den vollständigen Ordner im Quellbaum.

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

Für bin Ordner und obj Ordner schreiben Sie einfach: * / bin / * / obj /

Rajesh Kumar
quelle
0
  • Ignorieren Sie alle Dateien im Ordner mit Git in Sourcetree:

Ignorieren Sie alle Dateien im Ordner mit Git in Sourcetree

Yatko
quelle
-2

In Sourcetree: Ignorieren Sie einfach eine Datei im angegebenen Ordner. Sourcetree fragt Sie, ob Sie alle Dateien in diesem Ordner ignorieren möchten. Es ist perfekt!

AVEbrahimi
quelle
14
-1 Eine sinnlose Antwort. Da du nicht erklärst, wie man das ignoriert (im Quellenbaum)!
Ingenieur