Как обновить мой локальный репозиторий Webkit с помощью git - PullRequest
2 голосов
/ 30 июня 2010

Я скачал git-репозиторий локально, используя это:

git clone git://git.webkit.org/WebKit.git WebKit

Я использую этот собственный эксперимент (не для того, чтобы перенести изменения обратно на webkit.org). Поэтому я внес некоторые изменения и затем сделал 'git commit'.

Но я бы хотел выяснить, как лучше всего обновить мой репозиторий Webkit (поскольку я могу вносить изменения в файлы, которые были изменены / изменены удаленно).

Я немного покопался. Есть разные способы в git?

1. git pull
2. git pull --rebase

Так какой из них лучше всего подходит для моей ситуации?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 30 июня 2010

Вы должны попытаться избежать git pull и использовать git fetch + git merge. Этот блог содержит больше информации

0 голосов
/ 30 июня 2010

Команда git pull получит последние изменения из источника (origin по умолчанию) и сразу попытается объединить их с вашим кодом в вашей текущей ветке. Если нет совпадений, это будет бриз.

git pull --rebase сделает то же самое, за исключением того, что попытается применить ваши изменения в конце потока входящих, чтобы они выглядели как одно простое продвижение. Вы заметите разницу, только если посмотрите на историю (git log) обоими методами. (См. эту страницу для демонстрации.)

Если вы обеспокоены совпадением ваших изменений с изменениями из источника и хотели бы получить «предварительный просмотр», прежде чем пытаться объединить их, то вы можете использовать команду git fetch origin, чтобы свести все последние изменения в скрытая локальная ветвь с именем 'origin / master' - которая отличается от вашей 'master' ветки. Затем вы можете просмотреть его с помощью git merge origin/master (обратите внимание, что вы увидите предупреждение о том, что это не «настоящая» ветвь, но она все еще работает), а затем объединить его с вашим кодом (сначала git checkout master если вы еще не были там, тогда git merge origin/master).

(Как уже упоминалось в adymitruk, проще всего внести ваши изменения в отдельную ветку (git checkout -b my_branch), а затем извлечь и объединить или вытащить. Но если вы уже работали над локальной веткой master, вышеупомянутые команды доставят вас туда.)

0 голосов
/ 30 июня 2010

Лучший способ сделать свои собственные изменения - это зафиксировать их в отдельной ветке. Затем вы можете объединить или перебазировать обновления из главного или любых других опубликованных веток.

Поддерживая ветку master в чистоте от ваших изменений, не имеет значения, используете ли вы git pull или git pull --rebase в ветке master. Все слияния, которые выполняет команда git pull, в конечном итоге будут называться «слияниями перемотки вперед». Это просто означает, что объединять нечего, поэтому это простое перемещение указателя главной ветви на последний коммит, полученный вами с пульта.

Надеюсь, это поможет,

адм

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...