Frage

Ich habe eine Reihe von Änderungen an meiner lokalen Git-Version eines Rails-Projekts vorgenommen, die ich nicht verlieren möchte. Dabei habe ich jedoch versehentlich eine erstellt Anbieter/Paket Ordner in Git.

Sobald ich den Commit durchgeführt hatte, wurde mir klar, dass ich dies getan hatte, und ich habe ein git rm für den Ordner erstellt (und den Ordner zu gitignore hinzugefügt) und erneut einen Commit durchgeführt.Allerdings kann ich das Original jetzt nicht pushen, da das Bundle zu groß ist.

Was ich brauche

  • Wie kann ich die von mir vorgenommenen Änderungen (und neuen Dateien) behalten?
  • Beim Entfernen des Bundle-Ordners aus dem Git-Verlauf
  • Und diesen Commit nicht mit pushen, da das Verzeichnis zu groß ist

Ich habe hier SO nach verschiedenen Möglichkeiten zum Soft-Reset gesucht, aber ich stecke fest.

War es hilfreich?

Lösung

Du könntest es tun git reset --soft HEAD~x Dabei ist x die Anzahl der Bewertungen, die Sie zurücksetzen möchten – in Ihrem Fall 2 – und fügen Sie dann das Verzeichnis zur Gitignore-Datei hinzu und entfernen Sie es auch aus dem bereitgestellten Bereich.

Andere Tipps

Ich denke, ich habe die Antwort gefunden:

Dies tritt ziemlich häufig auf.Jemand verpflichtet sich versehentlich ein riesiges Binärdatei mit einem gedankenlosen Git-Hinzufügen. Und Sie möchten es entfernen überall.Vielleicht haben Sie versehentlich eine Datei begangen, die a enthielt Passwort, und Sie möchten Ihr Projekt offene Quelle erstellen.Filterzweig. ist das Werkzeug, das Sie wahrscheinlich verwenden möchten, um Ihre gesamte Geschichte zu schrubben.Zu Entfernen Sie eine Datei mit dem Namen Passwords.txt von Ihrer gesamten Geschichte, können Sie Verwenden Sie die Option - Tree-Filter, um Filterzweig zu filtern:

Quelle :

git filter-branch --tree-filter 'rm -f /vendor/bundle' HEAD

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