git rebase
не работает должным образом в некоторых случаях, когда файл добавляется в репозиторий, затем удаляется из репозитория, а затем добавляется в рабочий каталог (но не репозиторий).
Вот более конкретное описание моей проблемы:
если ветка создается и переключается на затем добавляется в рабочий каталог (но не в репозиторий). ...
git rebase
не работает должным образом в некоторых случаях, когда файл добавляется в репозиторий, затем удаляется из репозитория, а затем добавляется в рабочий каталог (но не репозиторий).
Вот более конкретное описание моей проблемы:
если ветка создается и переключается на затем добавляется в рабочий каталог (но не в репозиторий). ...
git rebase
не работает должным образом в некоторых случаях, когда файл добавляется в репозиторий, затем удаляется из репозитория, а затем добавляется в рабочий каталог (но не репозиторий).
Вот более конкретное описание моей проблемы:
если ветка создается и переключается на ствол,
и файл X добавляется и фиксируется в ветви,
, а затем X удаляется и совершено в ветке,
и X снова создается в рабочем каталог, но не добавлен или зафиксировано,
и магистральная ветвь продвигается,
затем
выполняется перебазирование с использованием расширенных ствол в качестве базы выйдет из строя, потому что он откажется перезаписать X,
и перебазирование не может быть продолжено даже если рабочий каталог X удален или перемещен в сторону.
Вот сценарий для воспроизведения моей проблемы в командной строке:
git init
echo foo > foo.txt
git add .
git commit -m 'foo'
echo foo >> foo.txt
git add .
git commit -m 'foo foo'
git checkout -b topic HEAD^
git log
echo bar > bar.txt
echo baz > baz.txt
git add .
git commit -m 'bar baz'
git rm bar.txt
git commit -m '-bar'
echo bar > bar.txt
git rebase master
# the following output is emitted:
# First, rewinding head to replay your work on top of it...
# Applying: bar baz
# Using index info to reconstruct a base tree...
# Falling back to patching base and 3-way merge...
# error: Untracked working tree file 'bar.txt' would be overwritten by merge. Aborting
# Failed to merge in the changes.
# Patch failed at 0001 bar baz
#
# When you have resolved this problem run "git rebase --continue".
rm bar.txt
git rebase --continue
# the following output is emitted:
# Applying: bar baz
# No changes - did you forget to use 'git add'?
#
# When you have resolved this problem run "git rebase --continue".
# If you would prefer to skip this patch, instead run "git rebase --skip".
# To restore the original branch and stop rebasing run "git rebase --abort".
Я знаю, что могу прервать перебазирование с помощью git rebase --abort
, remove bar.txt
, а затем снова git rebase master
. Но как я могу продолжить перебазирование, не прерывая его сначала?