warum willst du das machen Übernehmen Sie einfach Ihre Änderungen. .gitignoresoll Teil Ihres Repositorys sein und Dateimuster auflisten, die für das Projekt Junk sind.
KurzedMetal
1
.gitignoresollte Teil Ihres Repositorys sein, damit jeder in Ihrem Team dieselben Dateien ignoriert oder eincheckt. Nur weil .gitignorees sich irgendwo in Ihren Codeordnern befindet, heißt das nicht, dass Sie es bereitstellen müssen.
Der .gitignoreZweck der Datei besteht darin, zu verhindern, dass jeder, der an einem Projekt zusammenarbeitet, versehentlich einige häufig verwendete Dateien in einem Projekt festschreibt, z. B. generierte Cache-Dateien. Daher sollten Sie nicht ignorieren .gitignore, da es im Repository enthalten sein soll.
Wenn Sie Dateien in nur einem Repository ignorieren möchten, aber die Ignorierliste nicht festschreiben möchten (z. B. für persönliche Dateien), können Sie sie .git/info/excludein diesem Repository hinzufügen .
Wenn Sie bestimmte Dateien in jedem Repository auf Ihrem Computer ignorieren möchten, können Sie die Datei erstellen ~/.gitignore_globalund dann ausführen
Ein .gitignore kann sich selbst ignorieren, wenn er nie eingecheckt wurde:
mhaase@ubuntu:~$ git --version
git version 1.7.9.5
mhaase@ubuntu:~$ git init temp
Initialized empty Git repository in /home/mhaase/temp/.git/
mhaase@ubuntu:~$ cd temp
mhaase@ubuntu:~/temp$ touch .gitignore foo bar baz bat
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# bar
# bat
# baz
# foo
mhaase@ubuntu:~/temp$ echo "foo" >> .gitignore
mhaase@ubuntu:~/temp$ echo ".gitignore" >> .gitignore
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bar
# bat
# baz
nothing added to commit but untracked files present (use "git add" to track)
Wenn Sie .gitignore einchecken (bevor Sie es anweisen, sich selbst zu ignorieren), wird es immer im Git-Status angezeigt, auch wenn Sie es später so ändern, dass es sich selbst ignoriert.
Genau das ist mein Fall. Ich möchte einen Einheimischen .gitignorezum Arbeiten haben git-svn, den niemand sehen sollte. Also habe ich es einfach selbst hinzugefügt und es hat einfach funktioniert. Aber dann habe ich gegoogelt, um zu sehen, ob einige nervöse Leute anderen erklären, wie "schlecht" das ist. Diese Antwort sollte akzeptiert werden, und dann würde ich auch die .git/info/excludeVorschläge positiv bewerten . Es muss also nur nicht verfolgt werden ... Nicht sehr überraschend, zumindest wenn Sie jemals "untergraben" wurden (svn).
Tomasz Gandor
Ich habe zuerst eine .gitignoreDatei gesichert. Dann nutze git rm .gitignoreund begebe ich diese Änderung. Zuletzt fügen Sie die .gitignoreDatei mit der Regel für hinzu und schreiben sie erneut fest .gitignore. Es klappt!
Qzhang
3
Um dies zu beheben, können Sie ausführen git rm --cached .gitignore.
Gideon
18
Es gibt keinen guten Grund dafür. Wenn Sie möchten, dass Dateien nur für Ihren Klon ignoriert werden, fügen Sie sie zu .git / info / exclude hinzu, nicht zu .gitignore
Ich erhalte die Meldung "Der Vorgang kann aufgrund bestehender Änderungen an der folgenden Datei nicht abgeschlossen werden" und in der darin aufgeführten Datei ist die Datei aufgeführt, die ich ausgeschlossen habe. Irgendeine Idee warum?
Paul McCarthy
3
.gitignoreVersuchen Sie nach Eingabe Ihrer Gitignore-Datei Folgendes:
Es sollte funktionieren, obwohl, wie bereits gesagt, das Ignorieren von Gitignore kontraproduktiv sein kann, wenn Ihr Repo von mehreren Benutzern geteilt wird.
Ja, du kannst; Sie sehen es immer noch in bearbeiteten Dateien, da es immer noch von git verfolgt wird und Dateien, die von git verfolgt werden, immer als geändert markiert werden, selbst wenn sie sich in .gitignore befinden. Also einfach aufspüren .
Aber warum nicht Änderungen vornehmen oder zurücksetzen, die Sie vorgenommen haben? Es ist eine viel bessere Möglichkeit, es aus dem Status zu entfernen ... Beachten Sie auch, dass jeder neue Klon Ihres Repos seine hinzufügen muss .gitignore, was ärgerlich sein kann.
Ja, und Sie müssen es got rm --cached .gitignorewahrscheinlich separat von git by entfernen .
Tadeck
Der git rm --cached .gitignore wird aus git entfernt. Das ist destruktiv und nicht wünschenswert. Wie kann man .gitignore für den lokalen Klon einfach ignorieren?
Javadba
0
Sie können dies erreichen, indem Sie dies in Ihre .gitignore-Datei schreiben. Das *fügt alles hinzu, um die Liste zu ignorieren, und entfernt dann !.gitignoredie .gitignore-Datei aus der Ignorierliste.
Ja, richtig, ich habe das schon erwähnt. *wird alles ignorieren. Einschließlich der .gitignoreDatei.
Ankit Singh
1
Ich meine, OP versucht , die .gitignoreDatei aus der Codebasis zu entfernen (indem es sie zu sich selbst hinzufügt, was nicht wirklich Sinn macht, aber wer bin ich, um zu beurteilen). Hier kann ich einen Vorschlag sehen, der sicherstellt, dass die Datei niemals ignoriert wird, was wiederum bedeutet, dass sie in der Codebasis vorhanden ist ( hinzugefügt wird )
Dmitry Parzhitsky
Das ist richtig. Die Frage selbst scheint verdreht. Aber okay.
.gitignore
soll Teil Ihres Repositorys sein und Dateimuster auflisten, die für das Projekt Junk sind..gitignore
sollte Teil Ihres Repositorys sein, damit jeder in Ihrem Team dieselben Dateien ignoriert oder eincheckt. Nur weil.gitignore
es sich irgendwo in Ihren Codeordnern befindet, heißt das nicht, dass Sie es bereitstellen müssen.git rm --cached .gitignore
Antworten:
Der
.gitignore
Zweck der Datei besteht darin, zu verhindern, dass jeder, der an einem Projekt zusammenarbeitet, versehentlich einige häufig verwendete Dateien in einem Projekt festschreibt, z. B. generierte Cache-Dateien. Daher sollten Sie nicht ignorieren.gitignore
, da es im Repository enthalten sein soll.Wenn Sie Dateien in nur einem Repository ignorieren möchten, aber die Ignorierliste nicht festschreiben möchten (z. B. für persönliche Dateien), können Sie sie
.git/info/exclude
in diesem Repository hinzufügen .Wenn Sie bestimmte Dateien in jedem Repository auf Ihrem Computer ignorieren möchten, können Sie die Datei erstellen
~/.gitignore_global
und dann ausführenquelle
Ein .gitignore kann sich selbst ignorieren, wenn er nie eingecheckt wurde:
Wenn Sie .gitignore einchecken (bevor Sie es anweisen, sich selbst zu ignorieren), wird es immer im Git-Status angezeigt, auch wenn Sie es später so ändern, dass es sich selbst ignoriert.
quelle
.gitignore
zum Arbeiten habengit-svn
, den niemand sehen sollte. Also habe ich es einfach selbst hinzugefügt und es hat einfach funktioniert. Aber dann habe ich gegoogelt, um zu sehen, ob einige nervöse Leute anderen erklären, wie "schlecht" das ist. Diese Antwort sollte akzeptiert werden, und dann würde ich auch die.git/info/exclude
Vorschläge positiv bewerten . Es muss also nur nicht verfolgt werden ... Nicht sehr überraschend, zumindest wenn Sie jemals "untergraben" wurden (svn)..gitignore
Datei gesichert. Dann nutzegit rm .gitignore
und begebe ich diese Änderung. Zuletzt fügen Sie die.gitignore
Datei mit der Regel für hinzu und schreiben sie erneut fest.gitignore
. Es klappt!git rm --cached .gitignore
.Es gibt keinen guten Grund dafür. Wenn Sie möchten, dass Dateien nur für Ihren Klon ignoriert werden, fügen Sie sie zu .git / info / exclude hinzu, nicht zu .gitignore
quelle
.gitignore
Versuchen Sie nach Eingabe Ihrer Gitignore-Datei Folgendes:Es sollte funktionieren, obwohl, wie bereits gesagt, das Ignorieren von Gitignore kontraproduktiv sein kann, wenn Ihr Repo von mehreren Benutzern geteilt wird.
quelle
Ja, du kannst; Sie sehen es immer noch in bearbeiteten Dateien, da es immer noch von git verfolgt wird und Dateien, die von git verfolgt werden, immer als geändert markiert werden, selbst wenn sie sich in .gitignore befinden. Also einfach aufspüren .
Aber warum nicht Änderungen vornehmen oder zurücksetzen, die Sie vorgenommen haben? Es ist eine viel bessere Möglichkeit, es aus dem Status zu entfernen ... Beachten Sie auch, dass jeder neue Klon Ihres Repos seine hinzufügen muss
.gitignore
, was ärgerlich sein kann.quelle
got rm --cached .gitignore
wahrscheinlich separat von git by entfernen .Sie können dies erreichen, indem Sie dies in Ihre .gitignore-Datei schreiben. Das
*
fügt alles hinzu, um die Liste zu ignorieren, und entfernt dann!.gitignore
die .gitignore-Datei aus der Ignorierliste.quelle
*
wird alles ignorieren. Einschließlich der.gitignore
Datei..gitignore
Datei aus der Codebasis zu entfernen (indem es sie zu sich selbst hinzufügt, was nicht wirklich Sinn macht, aber wer bin ich, um zu beurteilen). Hier kann ich einen Vorschlag sehen, der sicherstellt, dass die Datei niemals ignoriert wird, was wiederum bedeutet, dass sie in der Codebasis vorhanden ist ( hinzugefügt wird )