forked from doka-guide/content
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
30 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
Обе команды служат одной цели, но имеют существенные отличия в работе. | ||
|
||
`git merge` объединяет изменения из одной ветки в другую, создавая новый коммит слияния `merge commit`. История проекта остается неизменной, записываются все коммиты. Можно проследить, когда и как ветки были объединены, но читать такую последовательность становится сложнее. | ||
|
||
_Обратите внимание, что при использовании `merge` мы должны находиться в ветке, в которую делаем слияние:_ | ||
```bash | ||
git checkout main | ||
git merge feature | ||
``` | ||
|
||
`git rebase` перемещает или переписывает базу текущей ветки на указанную базу другой ветки. Это переписывает историю коммитов (в том числе изменяя хэши), делая ее линейной, не создаёт новый коммит слияния `merge commit`. Это значительно упрощает чтение последовательности внедрения фич, но усложняет отслеживание детальной хронологии. Самое большое преимущество заключается в возможности перенести только часть коммитов, как указано в статье. | ||
|
||
_Обратите внимание, что при использовании `rebase` мы должны находиться в ветке, из которой делаем слияние:_ | ||
```bash | ||
git checkout feature | ||
git rebase main | ||
``` | ||
|
||
Используйте `merge`, когда вы хотите сохранить всю историю разработки, включая все ветвления и слияния. Это полезно для командной работы, где важно видеть весь контекст изменений. | ||
Используйте `rebase`, когда вы хотите поддерживать чистую и линейную историю. Это особенно полезно для интеграции изменений в основную ветку перед созданием `pull request`, чтобы история коммитов была более понятной. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
related: | ||
- recipes/git-rebase-onto | ||
--- | ||
|
||
Разница между `git merge` и `git rebase`? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
--- | ||
name: 'Владимир Стругов' | ||
url: https://github.com/Otkazano | ||
--- |