Ich habe einen Commit auf einen Repo übertragen, wo ich versehentlich eine Datei hinzugefügt habe. Niemand hat sich aus dem Remote-Repo zusammengeschlossen, so dass ich die Geschichte neu schreiben kann. Aber wenn ich eine Datei aus dem Local Commit entferne (nicht aufheben, nicht von der Quellcodeverwaltung oder der Festplatte entfernen), kann ich keine Änderungen vornehmen. git push zeigt alles up-to-dateDatei aus dem geänderten Commit entfernen
9
A
Antwort
3
Während ich etwas tat, ähnlich dem, was Colin und ydroneaud vorgeschlagen haben,
Die Antwort war
zu verwendengit push +sa1:sa1
wo sa1 mein Zweig ist. Dies zwingt dazu, sogar "nichts" zu drücken.
4
Versuchen:
git rm --cached <yourfile>
git commit --amend
git push -f
5
Wenn Sie die volle verpflichten umschreiben müssen, versuchen
git reset HEAD^
git add <files to be part of the commit>
# or git add -pu
git commit -C <previous commit number>
Vor diesem verwenden tun müssen Sie das halten letzte Commit-Nummer, um die Commit-Nachricht/das Datum/den Autor wiederverwenden zu können.
+0
Ich habe etwas ähnliches gemacht. Das Problem war, dass ich diese Änderungen nicht auf das Remote-Repository übertragen konnte. – sa1
9
Hier gehen Sie:
git checkout HEAD~ -- path/to/your/file
git add path/to/your/file
git commit --amend -C HEAD
git diff -p HEAD~ -- path/to/your/file | git apply -R
git commit --amend -C HEAD
git reset HEAD~ -- path/to/your/file
git commit --amend -C HEAD
Verwandte Themen
- 1. Git - Entfernen Sie Commit aus dem Verlauf
- 2. Git - Datei aus dem Repository entfernen
- 3. Verschiebung der geänderten Datei von COMMIT in PR
- 4. Vollständig eine Datei aus dem gesamten Git-Repository entfernen
- 5. Entfernen seltsame 'Iconr' Datei aus dem Repository
- 6. Entfernen von Commits vor dem spezifischen Commit
- 7. aus dem Text entfernen
- 8. Kann Datei nicht von git commit entfernen
- 9. Commit alle geänderten Dateien zu Github in Netbeans
- 10. Bazaar-Plugin: Liste der geänderten Dateien auf Pre-Commit-Hook
- 11. Entfernen git korrupten Blob aus dem Repository
- 12. Zeitstempelfelder aus dem Schema entfernen
- 13. Zeilen aus Datei entfernen
- 14. git push nach dem Entfernen großer Datei
- 15. Git entfernen Geschichte Commit
- 16. Mercurial: Entfernen letzten Commit
- 17. Git Problem mit Commit-Datei
- 18. Git pre-commit Haken: getting Liste der geänderten Dateien
- 19. entfernen Char11 aus XML-Datei
- 20. Namen aller geänderten Dateien im Protokoll einer Datei abrufen
- 21. Entfernen mehrerer Git-Commits aus dem Verlauf
- 22. Datei aus dem Repository entfernen, aber lokal aufbewahren
- 23. Tiny MCE - Entfernen 'Datei' Option aus dem Menü
- 24. Surface aus dem Anwendungsstapel Entfernen
- 25. Links aus dem Text entfernen
- 26. Entfernen Element aus dem Array
- 27. Entfernen aus dem MEF-Container
- 28. Artikel aus dem Warenkorb entfernen
- 29. Mit git, temporäre ausschließen einer geänderten tracked-Datei von Commit in der Befehlszeile
- 30. Was ist der Unterschied zwischen dem geänderten Wert und dem geänderten Ereignis von UITextField
Ich möchte die Datei nicht aus Tracking entfernen, nur aus dem Festschreiben. – sa1
@ sa1 es gibt kein Tracking-Konzept in Git, Ihre Datei ist entweder oder ist nicht in Ihrem letzten Commit, das ist alles. Die andere Möglichkeit besteht darin, die Datei dort zu belassen, aber keinen Inhalt oder Teil davon zu entfernen. Git ist nur ein "dummer Inhalts-Tracker", der von einem "Dateisystem-Typen" gemacht wird. ;) – KurzedMetal
@KurzedMetal Es gibt ein Konzept von verfolgten Dateien. Was Sie hier tun, ist das Entfernen der Datei aus den verfolgten Dateien. Was er tun möchte, ist das Entfernen der Änderungen, die an einer Datei bei einem Commit vorgenommen wurden. –