Я нуб в Git, і намагаючись зрозуміти різницю між git pullпроти git rebase. Чи може хтось навести приклад, коли використовувати якийсь варіант, оскільки я вважаю, що обидва служать одній цілі.
Я нуб в Git, і намагаючись зрозуміти різницю між git pullпроти git rebase. Чи може хтось навести приклад, коли використовувати якийсь варіант, оскільки я вважаю, що обидва служать одній цілі.
Відповіді:
git pull і git rebase не є взаємозамінними, але вони тісно пов'язані.
git pullотримує останні зміни поточної гілки з віддаленого місця та застосовує ці зміни до вашої локальної копії гілки. Як правило, це відбувається об'єднанням, тобто локальні зміни об'єднуються у віддалені зміни. Так git pullсхоже на git fetch & git merge.
Звільнення є альтернативою злиття. Замість створення нового комітету, який поєднує дві гілки, він переміщує комітети однієї з гілок поверх іншої.
Ви можете потягнути за допомогою rebase замість merge ( git pull --rebase). Місцеві зміни, які ви внесли, будуть повернутись на віддалені зміни замість того, щоб бути об'єднаними з віддаленими змінами.
Atlassian має чудову документацію щодо злиття та відновлення .
git-pull - витягнути з та інтегруватись з іншим сховищем або локальною гілкою GIT PULL
В основному ви тягнете віддалену гілку до свого локального, наприклад:
git pull origin master
Витягне головну гілку у ваше місцеве сховище
git-rebase - локальний порт вперед переходить до оновленої головки GIT REBASE
Цей додає ваші локальні зміни поверх змін, які здійснюються дистанційно іншими користувачами. Наприклад:
SOME-FEATUREТепер ви хочете побачити його та ваші зміни у вашому місцевому відділенні. Тож тоді ви відділите masterвідділення:
git checkout master
тоді ви можете потягнути:
git pull origin master
і тоді ви переходите до своєї філії:
git checkout SOME-FEATURE
і ви можете виконати ребазацію, masterщоб отримати останні зміни від неї і поставити філій зобов’язання зверху:
git rebase master
Я сподіваюся, що зараз це трохи зрозуміліше для вас.
git fetchтоді git rebase origin/master.
Коротко :
-> Git Merge: Це просто об'єднає ваші та віддалені зміни, і це створить ще один запис історії фіксації
-> Git Rebase: це додасть ваші зміни до всіх нових віддалених змін та перепише історію фіксацій, тому історія ваших фіксацій буде набагато чистішою, ніж злиття git. База даних - це руйнівна операція. Це означає, що якщо ви не застосовуєте його правильно, ви можете втратити віддану роботу та / або порушити послідовність сховищ інших розробників.