20 lines
2.1 KiB
Markdown
20 lines
2.1 KiB
Markdown
---
|
||
tags: ["git", "git-rebase"]
|
||
---
|
||
|
||
Вы создаёте тематическую ветку `server`, чтобы добавить в проект некоторую функциональность для серверной части, и делаете коммит. Затем вы выполнили ответвление, чтобы сделать изменения для клиентской части, и создали несколько коммитов. Наконец, вы вернулись на ветку `server` и сделали ещё несколько коммитов.
|
||
|
||
[![](https://git-scm.com/book/en/v2/images/interesting-rebase-1.png)](https://git-scm.com/book/en/v2/images/interesting-rebase-1.png)
|
||
|
||
Предположим, вы решили, что хотите внести изменения клиентской части в основную линию разработки для релиза, но при этом не хотите добавлять изменения серверной части до полного тестирования. Вы можете взять изменения из ветки `client`, которых нет в server (`C8` и `C9`), и применить их на ветке `master` при помощи опции `--onto` команды `git rebase`:
|
||
|
||
```
|
||
git rebase --onto master server client
|
||
```
|
||
|
||
В этой команде говорится: "Переключись на ветку client, найди изменения относительно ветки server и примени их для ветки master".
|
||
|
||
[![](https://git-scm.com/book/en/v2/images/interesting-rebase-2.png)](https://git-scm.com/book/en/v2/images/interesting-rebase-2.png)
|
||
|
||
[Источник](https://git-scm.com/book/ru/v2/%D0%92%D0%B5%D1%82%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-Git-%D0%9F%D0%B5%D1%80%D0%B5%D0%B1%D0%B0%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#_%D0%B1%D0%BE%D0%BB%D0%B5%D0%B5_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D1%8F)
|