Ще одне сказане питання - git pullце як git fetch+ git merge.
Але в чому різниця між git pullVS git fetch+ git rebase?
Ще одне сказане питання - git pullце як git fetch+ git merge.
Але в чому різниця між git pullVS git fetch+ git rebase?
Відповіді:
З вашого запитання повинно бути досить очевидно, що ви насправді просто запитуєте про різницю між git mergeі git rebase.
Отже, припустимо, що ви є загальним випадком - ви виконали якусь роботу над своєю майстерною галуззю, і ви потягнули з походження, що також виконало певну роботу. Після вибору все виглядає приблизно так:
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
Якщо ви з’єднаєтесь у цей момент (поведінка за замовчуванням git pull), припускаючи, що немає конфліктів, ви закінчите це:
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
Якщо ви, з іншого боку, зробили відповідну базу даних, закінчите це:
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
Вміст вашого робочого дерева повинен закінчуватися однаковим в обох випадках; ви щойно створили іншу історію, яка веде до неї . Ребаза переписує вашу історію, роблячи вигляд так, ніби ви здійснили поверх нової основної гілки походження ( R), а не там, де ви спочатку здійснили ( H). Ніколи не слід використовувати підхід до ребазування, якщо хтось уже вийшов з вашої гілки.
Нарешті, зауважте, що ви можете фактично налаштувати git pullдля даної гілки використовувати ребазу замість злиття, встановивши параметр config branch.<name>.rebaseна значення true. Ви також можете зробити це за один потяг, використовуючи git pull --rebase.
git pullце як біг git fetchтоді git merge
git pull --rebase, як git fetchтодіgit rebase
git pullє як git fetch+ git merge.
"У режимі за замовчуванням git pull - це скорочення, за
git fetchяким слідуєgit mergeFETCH_HEAD." Точніше,git pullпрацюєgit fetchз заданими параметрами, а потім закликаєgit mergeоб'єднати отримані голови гілок у поточну гілку "
(Посилання: https://git-scm.com/docs/git-pull )
"Але яка різниця між git pullVS git fetch+ git rebase"
Знову з того ж джерела:
git pull --rebase
"З --rebase, він запускає git rebase замість git spajanje."
'різниця між mergeі rebase'
на що відповіли і тут:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(різниця між зміною способу запису історії версій)
git fetch + git rebaseроботи команд відтепер. Відтепер на нашому дереві git більше немає конфліктів :)