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?
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?
Antworten:
Fügen Sie dies zu .gitignore hinzu:
*
!.gitignore
.gitginore
handelt sich um eine reguläre Datei. Erstellen Sie sie einfach in dem Verzeichnis, dessen Inhalt Sie ignorieren möchten.
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.
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.
Klicken Sie mit der rechten Maustaste auf eine Datei → Ignorieren → Alles darunter ignorieren .
Wenn die Option Ignorieren abgeblendet ist, gilt Folgendes:
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.
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.
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.
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.
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.
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 /
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!
*
Mittel ignorieren alle Dateien, und die!.gitignore
Mittel ignorieren nicht die Datei selbst