Я нуб в Git, и пытаясь понять разницу между git pullпротив git rebase. Может ли кто-нибудь привести пример, когда использовать этот вариант, поскольку я считаю, что оба служат одной цели.
Да, я сделал. Разница между pull и rebase в том, что pull выполняет слияние. Итак, ответ на ваш вопрос находится по ссылке, которую я вставил.
Thibault D.
1
@ user4943236 1) вы даже не знаете, кто проголосовал против вашего вопроса, не обвиняйте людей без причины 2) если бы это был мой голос против, я бы не удалял его просто потому, что на него так легко найти ответ, прочитав документация
git pullи git rebaseне взаимозаменяемы, но тесно связаны.
git pullизвлекает последние изменения текущей ветки с удаленного устройства и применяет эти изменения к вашей локальной копии ветки. Обычно это делается путем слияния, т. Е. Локальные изменения объединяются с удаленными изменениями. Так git pullпохоже на git fetch & git merge.
Ребазинг - альтернатива слиянию. Вместо того, чтобы создавать новую фиксацию, которая объединяет две ветки, она перемещает фиксации одной из веток поверх другой.
Вы можете использовать rebase вместо merge ( git pull --rebase). Внесенные вами локальные изменения будут перебазированы поверх удаленных изменений, а не будут объединены с удаленными изменениями.
Мастер оформления заказа не требуется. Оставайтесь на своей ветке и делайте: git fetchзатем git rebase origin/master.
Антуан Мартин
1
Проверяя локальный мастер, а затем извлекая исходный мастер, также обновит ваш локальный мастер. Это одна из лучших практик, которую следует использовать
Ашвани
21
В двух словах :
-> Git Merge: он просто объединит ваши и удаленные изменения, и это создаст еще одну запись истории фиксации
-> Git Rebase: он поместит ваши изменения выше всех новых удаленных изменений и перезапишет историю фиксации, поэтому ваша история фиксации будет намного чище, чем git merge. Rebase - это деструктивная операция. Это означает, что если вы не примените его правильно, вы можете потерять выполненную работу и / или нарушить целостность репозиториев других разработчиков.
Ответы:
git pull
иgit rebase
не взаимозаменяемы, но тесно связаны.git pull
извлекает последние изменения текущей ветки с удаленного устройства и применяет эти изменения к вашей локальной копии ветки. Обычно это делается путем слияния, т. Е. Локальные изменения объединяются с удаленными изменениями. Такgit pull
похоже наgit fetch & git merge
.Ребазинг - альтернатива слиянию. Вместо того, чтобы создавать новую фиксацию, которая объединяет две ветки, она перемещает фиксации одной из веток поверх другой.
Вы можете использовать rebase вместо merge (
git pull --rebase
). Внесенные вами локальные изменения будут перебазированы поверх удаленных изменений, а не будут объединены с удаленными изменениями.У Atlassian есть отличная документация по объединению и перемещению .
источник
В основном вы перетаскиваете удаленную ветку на свой локальный, например:
Перетащит основную ветку в ваш локальный репозиторий
Это помещает ваши локальные изменения поверх изменений, сделанных удаленно другими пользователями. Например:
SOME-FEATURE
Теперь вы хотите увидеть его и свои изменения в своем локальном филиале. Итак, вы выполняете кассовую
master
ветку:тогда вы можете тянуть:
а затем вы переходите в свою ветку:
и вы можете выполнить rebase,
master
чтобы получить от него самые последние изменения и поместить свои коммиты ветки вверху:Надеюсь, теперь вам стало понятнее.
источник
git fetch
затемgit rebase origin/master
.В двух словах :
-> Git Merge: он просто объединит ваши и удаленные изменения, и это создаст еще одну запись истории фиксации
-> Git Rebase: он поместит ваши изменения выше всех новых удаленных изменений и перезапишет историю фиксации, поэтому ваша история фиксации будет намного чище, чем git merge. Rebase - это деструктивная операция. Это означает, что если вы не примените его правильно, вы можете потерять выполненную работу и / или нарушить целостность репозиториев других разработчиков.
источник