Umschreiben des Verlaufs eines Git-Repositorys, z. B. um alte Commits zu bearbeiten, unerwünschte Daten (z. B. private Daten oder große Dateien) zu entfernen, die Dateistruktur neu zu ordnen, Commit-Metadaten zu korrigieren usw.
Die Antworten dieser Frage sind eine Gemeinschaftsanstrengung . Bearbeiten Sie vorhandene Antworten, um diesen Beitrag zu verbessern. Derzeit werden keine neuen Antworten oder Interaktionen akzeptiert. Ich habe das Falsche in eine Commit-Nachricht geschrieben. Wie kann ich die Nachricht ändern? Das Commit wurde noch nicht verschoben.
Overа этот вопрос есть ответы на Stack Overflow на русском : Поменять у автора и коммитера емейл и имя во о Ich habe ein einfaches Skript auf dem Schulcomputer geschrieben und die Änderungen an Git vorgenommen (in einem Repo, das sich in meinem Pendrive befand und von meinem Computer zu …
Normalerweise reiche ich eine Liste von Commits zur Überprüfung ein. Wenn ich folgende Commits habe: HEAD Commit3 Commit2 Commit1 ... Ich weiß, dass ich Head Commit mit ändern kann git commit --amend. Aber wie kann ich Änderungen vornehmen Commit1, da es sich nicht um das HEADCommit handelt?
Die Antworten zu Wie ändere ich vorhandene, nicht gepuschte Commits? Beschreiben einer Möglichkeit zum Ändern früherer Commit-Nachrichten, die noch nicht in den Upstream verschoben wurden. Die neuen Nachrichten erben die Zeitstempel der ursprünglichen Commits. Dies scheint logisch, aber gibt es eine Möglichkeit, auch die Zeiten neu einzustellen?
Gelegentlich habe ich einen DVD-Rip in ein Website-Projekt gelegt, dann nachlässig git commit -a -m ..., und zap, das Repo wurde durch 2,2 Gigs aufgebläht. Das nächste Mal habe ich einige Änderungen vorgenommen, die Videodatei gelöscht und alles festgeschrieben, aber die komprimierte Datei befindet sich noch im Repository im Verlauf. …
Wie quetschen Sie Ihr gesamtes Repository bis zum ersten Commit? Ich kann auf das erste Commit zurückgreifen, aber das würde mir 2 Commits lassen. Gibt es eine Möglichkeit, das Commit vor dem ersten zu referenzieren?
Ich filename.orighabe vor einigen Commits versehentlich eine unerwünschte Datei ( beim Auflösen einer Zusammenführung) in mein Repository übernommen, ohne dass ich es bisher bemerkt habe. Ich möchte die Datei vollständig aus dem Repository-Verlauf löschen. Ist es möglich, den Änderungsverlauf so umzuschreiben, dass er überhaupt filename.orignicht zum Repository hinzugefügt wurde?
Ich möchte ein Git-Projekt auf GitHub stellen, aber es enthält bestimmte Dateien mit vertraulichen Daten (Benutzernamen und Passwörter wie /config/deploy.rb für capistrano). Ich weiß, dass ich diese Dateinamen zu .gitignore hinzufügen kann , aber dies würde ihren Verlauf in Git nicht entfernen. Ich möchte auch nicht noch einmal von vorne …
Es gibt Möglichkeiten, die Nachricht aus späteren Commits zu ändern: git commit --amend # for the most recent commit git rebase --interactive master~2 # but requires *parent* Wie können Sie die Festschreibungsnachricht des allerersten Festschreibens ändern (das kein übergeordnetes Element hat)?
Angenommen, Sie haben eine Historie mit den drei Commits A, B und C : A-B-C Ich möchte die beiden Commits A und B zu einem Commit AB kombinieren : AB-C Ich habe es versucht git rebase -i A Das öffnet meinen Editor mit folgenden Inhalten: pick e97a17b B pick asd314f …
Nehmen Sie den folgenden Fall: Ich habe einige Arbeiten in einem Themenbereich und bin jetzt bereit, wieder zum Master zurückzukehren: * eb3b733 3 [master] [origin/master] | * b62cae6 2 [topic] |/ * 38abeae 1 Ich führe die Zusammenführung vom Master durch, löse die Konflikte und jetzt habe ich: * 8101fe3 …
Ich hatte die gleiche Frage wie hier gestellt: Neues Git-Repository im Stammverzeichnis, um ein vorhandenes Repository in einem Unterverzeichnis zu subsumieren Ich folgte dieser Antwort hier: Neues Git-Repository im Stammverzeichnis, um ein vorhandenes Repository in einem Unterverzeichnis zu subsumieren Nun gitk --allzeigt zwei Geschichten: eine, die in der Strömung gipfeltmaster …
Ich habe eine Reihe von Commits in Git vorgenommen und stelle jetzt fest, dass ich vergessen habe, meinen Benutzernamen und die E-Mail-Eigenschaften des Benutzers korrekt festzulegen (neuer Computer). Ich habe diese Commits noch nicht in mein Repository verschoben. Wie kann ich diese Commits korrigieren, bevor ich dies tue (nur die …
Ich habe versucht, eine Datei aus meinem Remote-Repo zu entfernen, indem ich Folgendes ausgeführt habe: git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD Aber Git beschwert sich darüber Es kann kein neues Backup erstellt werden. Eine frühere Sicherung ist bereits in refs / original / Force vorhanden. Überschreiben der …
(gelöst, siehe unten im Fragetext) Wenn ich schon lange danach suche, habe ich bis jetzt Folgendes: http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/ und http://progit.org/book/ch9-7.html Ziemlich die gleiche Methode, aber beide belassen Objekte in Packdateien ... stecken geblieben. Was ich versucht habe: git filter-branch --index-filter 'git rm --cached --ignore-unmatch file_name' rm -Rf .git/refs/original rm -Rf .git/logs/ …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.