, Теперь я понимаю, почему.

ьзуя 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 ветка?

Ответы на вопрос(1)

Ваш ответ на вопрос