Перебазирование ветки
Другой подход к интеграции ветки issue3
в основную ветку — это команда git rebase. Используя команду rebase, мы можем очистить наше дерево журнала, как обсуждалось ранее в этом руководстве.
Начнем с отмены предыдущего слияния.
$ git reset --hard HEAD~
Вот как наш журнал выглядит сейчас:
Затем переключитесь на ветку issue3
и выполните перебазирование в основную ветку.
$ git checkout issue3
Switched to branch 'issue3'
$ git rebase main
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
error: could not apply 470d684... My Commit
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 470d684... My Commit
Если во время перебазирования возникает конфликт, необходимо решить его, чтобы возобновить операцию.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of a remote repository
>>>>>>> issue3
Как только конфликт будет решен, вы можете возобновить перебазирование с помощью параметра --continue
.
Прежде чем применить ваши изменения, Git откроет ваш текстовый редактор по умолчанию (Vim или Emacs в большинстве систем Unix), чтобы дать вам возможность отредактировать сообщение о перебазировании. Если вы хотите выйти и отменить операцию перебазирования, вы можете сделать это с помощью параметра --abort
.
$ git add myfile.txt
$ git rebase --continue
Applying: append description of the pull command
Сейчас наш журнал выглядит так:
Перебазировав ветку issue3
в main
, мы теперь можем выполнить ускоренное слияние.
Переключитесь на основную ветку и объедините issue3
с main
.
$ git checkout main
Switched to branch 'main'
$ git merge issue3
Updating 8f7aa27..96a0ff0
Fast-forward
myfile.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Содержимое файла myfile.txt
теперь будет идентично содержимому предыдущего слияния. И журнал теперь будет выглядеть следующим образом: