, Теперь я понимаю, почему.
ьзуя git 2.11,мерзавец Документация гласит:
Текущая ветвь сбрасывается на <upstream> или <newbase>, если была указана опция --onto. Это имеет тот же эффект, что и git reset --hard (или). ORIG_HEAD настроен так, чтобы указывать на вершину ветви перед сбросом.
Я понимаю это как будтоupstream
а такжеnewbase
указывает на одну и ту же «базовую ссылку», то это означает, что два приведенных ниже синтаксиса эквивалентны:
git rebase ABC
git rebase --onto ABC
Вот демонстрационная версия, которую я настроил. Давайте предположим, что текущая ветвьFeatureABC
он идеально синхронизирован с удаленной веткой.
#---create two identical branches, behind current branch by 5 commits
(FeatureABC) git branch Demo1-Rebase-ABC HEAD~4
(FeatureABC) git branch Demo2-Rebase-onto-ABC HEAD~4
#---Make a new commit in branch Demo1
git checkout Demo1-Rebase-ABC
echo "Demo of: git rebase FeatureABC Demo1-Rebase-ABC" > ./Demo1_BogusFile.txt
git add ./Demo1_BogusFile.txt
git commit -m "Create file Demo1_BogusFile.txt"
git rebase FeatureABC
Во-первых, перематывать голову, чтобы повторить вашу работу поверх него
... Применение: Создать файл Demo1_BogusFile.txt
git log --oneline -3
показывает что веткаDemo1-Rebase-ABC
синхронизируется с заголовком FeatureABC. И коммит «Создать файл Demo1_BogusFile.txt» был правильно применен поверх него.
#---Make a new commit in branch Demo2
git checkout Demo2-Rebase-onto-ABC
echo "Demo of: git rebase --onto FeatureABC Demo2-Rebase-onto-ABC" > ./Demo2_Onto_BogusFile.txt
git add ./Demo2_Onto_BogusFile.txt
git commit -m "Create file Demo2_Onto_BogusFile.txt"
git rebase --onto FeatureABC
Для текущей ветки нет информации об отслеживании. Пожалуйста, укажите, какую ветку вы хотите перебазировать. Смотрите git-rebase (1) для подробностей.
git rebase <branch>
Если вы хотите установить информацию об отслеживании для этой ветки, вы можете сделать это с помощью:
git branch --set-upstream-to=origin/<branch> Demo2-Rebase-onto-ABC
Я неправильно понял предупреждение. Думая, что git был сбит с толку в значениях по умолчанию при использовании --onto. Так что я просто хочу "помочь", сказав git текущую ветку, которую я хочу перебазировать
git rebase --onto FeatureABC Demo2-Rebase-onto-ABC
Во-первых, перематывая голову, чтобы воспроизвести вашу работу поверх нее ...
git log --oneline -3
показывает что веткаDemo2-Rebase-onto-ABC
становитсяидентичный чемFeatureABC
, Последний коммит "Создать файл Demo2_Onto_BogusFile.txt" исчез, и файл./Demo2_Onto_BogusFile.txt
удален
Вопрос: в чем причинаgit rebase --onto FeatureABC Demo2-Rebase-onto-ABC
не применять новые коммиты, сделанные наDemo2-Rebase-onto-ABC
ветка?