Ich möchte viele Commits in einem kombinieren. Ich habe das Verfahren bei einem vorhergehenden Stackoverflow answer beschrieben gefolgt, die sagt:Rebase viele Commits zu eins in Git. Was mache ich falsch?
# Go back to the last commit that we want to form the initial commit (detach HEAD)
git checkout <sha1_for_B>
# reset the branch pointer to the initial commit,
# but leaving the index and working tree intact.
git reset --soft <sha1_for_A>
# amend the initial tree using the tree from 'B'
git commit --amend
# temporarily tag this new initial commit
# (or you could remember the new commit sha1 manually)
git tag tmp
# go back to the original branch (assume master for this example)
git checkout master
# Replay all the commits after B onto the new initial commit
git rebase --onto tmp <sha1_for_B>
# remove the temporary tag
git tag -d tmp
Ich gehe davon aus, dass B in dem obigen Codeblock ist die älteste begehen.
Hier ist, was mit mir passiert:
$ cd rebase-test
$ git branch
gui
* master
$ git log --pretty=oneline
7391d1b8e51b766190794ede49e3338307a64225 Merge branch 'gui'
c69d44b0d3615d4f537ca42fe67ee58e2728a31a Work in progress. Next port transform()
e710a839c5aee0b07178da1f97999fa6dba445d6 audio_load() implemeted in callback.c
...
$ git checkout c69d44b0d3615d4f537ca42fe67ee58e2728a31a
Note: moving to 'c69d44b0d3615d4f537ca42fe67ee58e2728a31a' which isn't a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
git checkout -b <new_branch_name>
HEAD is now at c69d44b... Work in progress. Next port transform()
$ git reset --soft 7391d1b8e51b766190794ede49e3338307a64225
$ git commit --amend
[detached HEAD ad4e92a] new
$ git tag tmp
$ git checkout gui
Previous HEAD position was ad4e92a... new
Switched to branch 'gui'
$ git rebase --onto tmp c69d44b0d3615d4f537ca42fe67ee58e2728a31a
First, rewinding head to replay your work on top of it...
Applying: Removed build files
Applying: Removed more build files
Applying: Fixed infile_handler crash
/home/louise/rebase-test/.git/rebase-apply/patch:90: space before tab in indent.
for(int j = 0; j < data->audio_info_load->channels; j++) {
/home/louise/rebase-test/.git/rebase-apply/patch:91: space before tab in indent.
if(j == selected_channel) {
/home/louise/rebase-test/.git/rebase-apply/patch:92: space before tab in indent.
data->mono_channel[while_counter * const_frames_read + i] = bufferIn[i * data->audio_info_load->channels + selected_channel];
/home/louise/rebase-test/.git/rebase-apply/patch:93: space before tab in indent.
}
/home/louise/rebase-test/.git/rebase-apply/patch:94: space before tab in indent.
}
warning: 5 lines add whitespace errors.
Applying: sf_readf_double() crashes
Applying: Crash fixed
Applying: Created audio_load()
/home/louise/rebase-test/.git/rebase-apply/patch:73: space before tab in indent.
for(int j = 0; j < data->audio_info_load->channels; j++) {
/home/louise/rebase-test/.git/rebase-apply/patch:74: space before tab in indent.
if(j == selected_channel) {
/home/louise/rebase-test/.git/rebase-apply/patch:75: space before tab in indent.
data->mono_channel[while_counter * const_frames_read + i] = bufferIn[i * data->audio_info_load->channels + selected_channel];
/home/louise/rebase-test/.git/rebase-apply/patch:76: space before tab in indent.
}
/home/louise/rebase-test/.git/rebase-apply/patch:77: space before tab in indent.
}
warning: 5 lines add whitespace errors.
Applying: Clean up
/home/louise/rebase-test/.git/rebase-apply/patch:58: trailing whitespace.
/home/louise/rebase-test/.git/rebase-apply/patch:60: trailing whitespace.
/home/louise/rebase-test/.git/rebase-apply/patch:67: trailing whitespace.
/home/louise/rebase-test/.git/rebase-apply/patch:72: trailing whitespace.
/home/louise/rebase-test/.git/rebase-apply/patch:80: trailing whitespace.
warning: squelched 11 whitespace errors
warning: 16 lines add whitespace errors.
Applying: transform_inv() implemented
/home/louise/rebase-test/.git/rebase-apply/patch:115: trailing whitespace.
free(data->mono_channel);
warning: 1 line adds whitespace errors.
Applying: audio_save() crash
Applying: Crash fixed
Applying: Backend finally implemented in gui.
$ git tag -d tmp
Deleted tag 'tmp'
ich den gleichen Fehler, wenn ich davon ausgehen, dass A die älteste ist.
Kann jemand sehen, was schief läuft?
Hugs, Louise
Edit: ich die Ausgabe aktualisiert haben, es zeigt, so was passiert, wenn ich weiter.
Fehler? Ich sehe keinen Fehler ... –
In der letzten Ausgabe sagt git "das ist kein lokaler Zweig". Ich nehme an, dass "lokal" "auf der Festplatte" bedeutet. Der "gui" Zweig ist auf meiner Festplatte und nicht im Internet. Oder meint die Ausgabe etwas anderes? – Louise
Sie scheinen bei Schritt eins, der erfolgreich abgeschlossen wurde (HEAD ist jetzt bei ddf5f7a ...), angehalten zu haben, also machen Sie weiter mit dem Rest des Rezepts. –