2017-01-26 3 views
0

ich implementieren featureX wollen Quetschen und ich habe es begangen, nachdem er durchNachricht bearbeiten begehen nach

git commit -m "featureX" 

Danach schreibe ich habe einige Änderungen vorgenommen und begangen

git commit -m "yo1" 

zerquetscht commit durch

git rebase -i HEAD~2 

wieder einige Änderungen und begangen

git commit -m "yo1" 

zerquetscht das Commit von

git rebase -i HEAD~3 

Jetzt git log zeigt -

featureX 
yo1 
yo2 

ich ändern möchten Nachricht yo1 und yo2 Veränderung1 und change2 begehen.

Auch ich möchte wissen, dass, wie kann ich die Änderungen sehen, die ich in yo1 und yo2 getan habe, weil ich vergessen habe, welche Änderungen ich in yo1 und yo2 getan habe.

Antwort

0

Sie können die ursprünglichen Änderungen nicht kennen, da Squash alle Commits zu einem kombiniert. Es macht eine neue begehen

Sie ändern Beschreibung mit einem amend auf letzten Commit oder einer interactive rebase und bearbeiten Option

Git commit --amend 
0

Sie verwenden können, begehen kann:

git commit --amend -m "New commit message" 

zu ändern, um die jüngsten zu begehen , da ein Squash Commit ein All-in-One Commit ist.

0

Um diesen HEAD (aktuelle Festschreibung) zu bearbeiten können Sie verwenden, um die

git commit --amend 

Auch ich will wissen, dass, wie kann ich die Änderungen sehen, die ich in yo1 und yo2 getan haben

um den Inhalt des neuesten begehen und aktualisieren sie es

git commit --amend --verbose 

zu sehen Um Inhalt eines gegebenen zu sehen begehen Sie Ihre

git show <sha-1> 

enter image description here

1

Quetschen Mittel begehen eine neue Hash-ID zu erzeugen, um Ihre begehen und Zusammenführen von Änderungen zu übernehmen in einem einzigen begehen können. Alle Informationen in Ihrem Commit-Baum bezüglich der Commits mit Commit-Nachrichten yo1 und yo2 sind jetzt verloren (in featureX zusammengeführt).

Sie können sie jedoch immer noch sehen, wenn Sie ihre Commit-Hash-ID kennen und auch, dass git nicht durch Garbage Collection gegangen ist. Sie würden immer noch da liegen, getrennt von deinem Ast als Objekt.

Do git reflog, um die Hash-ID zu ermitteln, die mit Ihrer Commit-Nachricht (yo1 oder yo2) verknüpft ist.

Dann können Sie einfach git show hashid # zu sehen, die Commit-Änderung, die Sie dort gemacht.

Wenn Sie einfach nur wollen die Commit-Nachricht ändern, ist es viel einfacher und kann entweder durch

tun erreicht werden

git commit --amend

oder

git rebase - i HEAD ~ 1 (-i steht für interaktiven Modus)

Verwandte Themen