Tak więc, podczas zmiany nazwy, wybierz edycję zarówno zatwierdzenia, w którym dodałeś plik przez pomyłkę, jak i tego, do którego chcesz go dodać w tej kolejności. Jeśli plik jest w późniejszym zatwierdzeniu, ale powinien znajdować się we wcześniejszym, musisz zmienić kolejność linii. Na przykład, zacznę
pick 8de731b Commit with missing file.
pick bbef925 Commit with too many files.
pick 52490ce More history.
muszę go zmienić na
edit bbef925 Commit with too many files.
edit 8de731b Commit with missing file.
pick 52490ce More history.
Następnie,
# In the commit containing an extra file
git reset HEAD^ badfile.c
git commit --amend
git rebase --continue
# Now in the commit to add it to
git add badfile.c
git commit --amend
git rebase --continue
Niestety, podczas edycji historii w jednej gałęzi, nie wiem od jakikolwiek sposób, aby uniknąć edycji historii we wszystkich gałęziach. Rebase powinno być wykonane tak wcześnie, jak to możliwe, aby uniknąć takich problemów. W moim prostym przypadku Tutaj mogę połączyć master i drugi oddział, ale nie dopuszcza, scalanie, to muszę rebase master i uporządkować i Squash zobowiązuje, tak:
pick 7cd915f Commit with missing file.
fixup 8de731b Commit with missing file. #This was the higher of the two entries
pick 8b92c5a Commit with too many files.
fixup bbef925 Commit with too many files. #This was the higher of the two entries
pick 94c3f7f More history.
fixup 52490ce More history. #This was the higher of the two entries
późnego edit: Po prostu zauważyłem, że przypadkowo zmieniłem historię commitów jako przeniesienie z mojej oryginalnej odpowiedzi. Zamiana linii w bazie danych zmienia kolejność, którą zatwierdzasz; po zakończeniu edycji możesz ponownie dokonać ponownego podziału i zamienić je, aby powrócić do pierwotnej kolejności zatwierdzania.
Należy pamiętać, że zmiana dotychczasowego zatwierdzenia powoduje przepisanie historii, a od tego zatwierdzenia uzyskuje się zupełnie nowe wartości skrótów.Nie rób tego, jeśli zatwierdzenie jest już opublikowane. – aragaer
@aragaer Mam celowo zastrzegłem, że przepisuję historię _LOCAL_. – Val