Ich habe ein Start-Repository für ein Projekt geklont. Verbringen Sie die letzten paar Wochen untätig daran und machen Sie Commits. Jetzt wurde mir klar, dass es in meinem Repo Unmengen von alten Commits gibt, die nichts mit meinem Projekt zu tun haben. Ebenso wie mein Repo mit ein paar Dutzend Mitwirkenden, die nie zu dem Projekt beigetragen haben.Git, entfernen Sie die Commits vom übergeordneten Repo
Ich würde gerne die alten Commits loswerden, die nichts mit dem Projekt zu tun haben und meine eigenen behalten.
Verwenden
git rebase -i
konnte ich squash
alle alten in zwei Commits verpflichtet. Aber ich weiß nicht, wie ich diese beiden in meiner Geschichte zerreißen könnte. Weil Rebasieren mich dazu zwingt, das zweitälteste Commit als das zu verwenden, in das ich mich dränge.
mit So drei Commits:
- meine erste begehen
- Mitte begehen
- alt Anfangs begehen
Ich möchte sie alle in den ersten ein bis squash
haben aber keine Ahnung wie es scheint, als ob ich nur in der Lage bin, in ältere Commits einzutauchen.
Hier wäre the repo.
Ich bin mir nicht sicher, was Sie fragen. Ihre Beschreibung klingt so, als ob Sie Commits entfernen und nicht quetschen möchten ("Squash" führt zwei Commits zu einem zusammen und behält alle Änderungen bei). Außerdem "quetscht" man sich nicht wirklich in ein Commit ein: Es ist eine symmetrische Operation. – melpomene
Ich möchte, dass der Code bleibt, während ich darauf aufbaue. Aber ich will keine Botschaften von Leuten begehen, die nichts mit meinem Projekt zu tun haben. –
OK, was ist das Problem? A in B zu quetschen sollte den gleichen Effekt haben wie B in A zu quetschen. – melpomene