С документации git rebase:
Текущая ветвь сбрасывается или, если --onto
опция была предоставлена. Это имеет тот же эффект, что и git reset
- трудно (или). ORIG_HEAD настроен так, чтобы указывать на конец ветви перед сбросом.
Коммиты, которые ранее были сохранены во временной области, затем по очереди применяются к текущей ветке, по порядку. Обратите внимание, что
любые коммиты в HEAD, которые вносят те же текстовые изменения, что и
commit в HEAD .. опущены (т.е. патч уже принят
вверх по течению с другим сообщением фиксации или отметка времени будет
пропущено).
Тогда важный бит:
Возможно, сбой слияния помешает этому процессу
будучи полностью автоматическим
Я могу видеть, как это происходит в целом, но у меня есть случай, когда это, кажется, случилось странным образом.
Вот мои команды:
407 07/09/18 16:53:09 cd temp
408 07/09/18 16:53:16 git clone https://github.com/joereddington/todo.txt
410 07/09/18 16:53:35 cd todo.txt/
412 07/09/18 16:53:41 git rebase HEAD~20
Мне кажется, что это НЕ МОЖЕТ потерпеть неудачу. Я понимаю, что последовательность:
- Переместить ГОЛОВУ в ГОЛОВУ ~ 20
- Поместите 20 последних коммитов в временную область
- для того, чтобы повторно применить фиксы , которые уже были сделаны, к репо с таким же состоянием
- Конец
Но я получаю ошибку:
Applying: update Using index info to reconstruct a base tree... M todo.txt .git/rebase-apply/patch:21: trailing whitespace. (A) Apply for gift aid number .git/rebase-apply/patch:30: trailing whitespace. (C) Sort all the 'to sort' spending in the right categories in the expenditure against grant file. .git/rebase-apply/patch:76: trailing whitespace. (E) Go thought calendar and find at least one 'thank you's you *can* make warning: 3 lines add whitespace errors. Falling back to patching base and 3-way merge... Auto-merging todo.txt CONFLICT (content): Merge conflict in todo.txt error: Failed to merge in the changes. Patch failed at 0025 update The copy of the patch that failed is found in: .git/rebase-apply/patch
Resolve all conflicts manually, mark them as resolved with "git add/rm <conflicted_files>", then run "git rebase --continue". You can instead skip this commit: run "git rebase --skip". To abort and get back to the state before "git rebase", run "git rebase --abort".
Josephs-Mini:todo.txt josephreddington$
Как это может произойти? Он отказывается выполнить коммит для контента, в котором он уже выполнил те же изменения!