Skip to main content
  1. Learn
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Как использовать Git
  6. Как использовать ветвление в Git
  7. Перебазирование ветки
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Перебазирование ветки

Другой подход к интеграции ветки issue3 в основную ветку — это команда git rebase. Используя команду rebase, мы можем очистить наше дерево журнала, как обсуждалось ранее в этом руководстве.

Начнем с отмены предыдущего слияния.

$ git reset --hard HEAD~

Вот как наш журнал выглядит сейчас:

History before rebase

Затем переключитесь на ветку 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

Сейчас наш журнал выглядит так:

Current history

Перебазировав ветку 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 теперь будет идентично содержимому предыдущего слияния. И журнал теперь будет выглядеть следующим образом:

Current history

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life