Ich arbeite an einem Zweig, sagen wir "experimenteller" Zweig, den ich von meinem Hauptzweig abzweige. Dann generiere ich ein Benutzermodell im experimentellen Zweig, füge sie aber noch nicht zum Index hinzu.
Was muss ich tun, wenn ich alle Änderungen der kürzlich in meinem experimentellen Zweig hinzugefügten Dateien verwerfen möchte? Die nicht verfolgten Dateien sind wie folgt aufgeführt:
$ git status
On branch new_chick
Untracked files:
(use "git add <file>..." to include in what will be committed)
.project
app/models/user.rb
db/migrate/
test/fixtures/users.yml
test/unit/user_test.rb
Ich habe versucht, "git reset --hard" auszuführen, in der Hoffnung, all diese Änderungen rückgängig zu machen, aber alle oben genannten Dateien werden weiterhin angezeigt.
Hat jemand bitte etwas Licht auf mich geworfen?
Antworten:
So entfernen Sie nicht verfolgte Dateien / Verzeichnisse:
-f - Kraft
-d - Verzeichnisse auch
-x - ignoriere auch entfernte Dateien (benutze dies nicht, wenn du ignorierte Dateien nicht entfernen willst)
quelle
-x
MIT VORSICHT hinzufügen, da dadurch Dateien dauerhaft gelöscht werden. Oder verwenden Sie mit-n
wie von @-x
Das .project wurde noch nicht verwendet und andere Konfigurationsdateien wurden gelöscht. Musste das Repo vom letzten Commit erneut in ein neues Verzeichnis ziehen.Benutzerinteraktiver Ansatz:
-i für interaktiv
-f für force
-d für Verzeichnis
-x für ignorierte Dateien (bei Bedarf hinzufügen)
Hinweis: Fügen Sie -n oder --dry-run hinzu, um nur zu überprüfen, was es tun wird.
quelle
Das sind nicht verfolgte Dateien. Dies bedeutet, dass Git sie nicht verfolgt. Sie werden nur aufgelistet, weil sie nicht in der git-Ignorierdatei enthalten sind. Da sie nicht von Git verfolgt werden,
git reset
werden sie nicht berührt.Wenn Sie alle nicht verfolgten Dateien wegblasen möchten, ist der einfachste Weg
git clean -f
(verwenden Siegit clean -n
stattdessen, wenn Sie sehen möchten, was zerstört werden würde, ohne tatsächlich etwas zu löschen). Andernfalls können Sie die nicht gewünschten Dateien einfach von Hand löschen.quelle
Zum Löschen nicht verfolgter Dateien:
git clean -f
Verwenden Sie zum Löschen auch nicht verfolgter Verzeichnisse:
git clean -f -d
Verwenden Sie zur Verhinderung eines Herzstillstands
git clean -n -f -d
quelle
Sie können auch auf andere Weise zum vorherigen Status des lokalen Repos zurückkehren:
git add
.git reset --hard
.quelle
Der Befehl für Ihre Rettung lautet
git clean
.quelle
Nun, ich hatte das ähnliche Problem. Ich hatte zuletzt genommen, aber es gab einige Änderungen in der lokalen, aufgrund derer die Zusammenführung nicht zu einer bestimmten Datei stattfand. Die Datei wurde nicht verfolgt und ich wollte sie nicht. Was ich tat, war -
$ git checkout Dateipfad / Dateiname
Dateipfad - Der Speicherort, von dem aus ich die Git-Bash durchgeführt habe. dann, als ich die letzten nahm, waren die Änderungen verfügbar
quelle
Obwohl es
git clean
gut funktioniert, finde ich es immer noch nützlich, mein eigenes Skript zu verwenden, um das Git-Repo zu bereinigen, es hat einige Vorteile.Dies zeigt eine Liste der zu bereinigenden Dateien an und fordert dann interaktiv zur Bereinigung auf oder nicht. Dies ist fast immer das, was ich möchte, da das interaktive Auffordern pro Datei mühsam wird.
Es ermöglicht auch das manuelle Filtern der Liste, was nützlich ist, wenn es Dateitypen gibt, die Sie nicht bereinigen möchten (und Grund haben, keine Festschreibung vorzunehmen).
git_clean.sh
quelle