2009-05-31 2 views
3

Предполагая, что проект A использует git как его SCM. Я клонировал их репо, внося изменения, соответствующие моим потребностям, после чего я могу по-прежнему вытаскивать обновления из своего репо и сохранять свои изменения?Отслеживание проектов других народов с помощью git

+0

См. Также http://stackoverflow.com/questions/804115/git-rebase-vs-git-merge и http://stackoverflow.com/questions/904353/unable-to-understand-git-branch-merge -and-rebase для более подробной информации о теме переустановки – VonC

ответ

5

Настоящий приятный способ сделать это в git - «пересоздать» ваши изменения. Что это значит, вместо того, чтобы объединять обновления с «своего» репо в ваши изменения, перематывает (отменяет) все ваши изменения, вносит свои изменения в вашу ветку (так что все красиво и линейно), а затем «повторяет» ваши изменения на вершине их.

Это приводит к тому, что ваши изменения всегда в основном представляют собой ряд «патчей» поверх репо, за которым вы следуете (вместо того, чтобы ваши изменения чередуются с изменениями, когда вы возвращаетесь в историю).

+0

, может быть, неплохо документировать, как это работает, лаконично? Конечно, это может повториться, но для тех, кто читает git docs и никогда не видел этого ... было бы полезно записать его где-нибудь. –

+0

@ darthcoder: http://stackoverflow.com/questions/804115/git-rebase-vs-git-merge и http://stackoverflow.com/questions/904353/unable-to-understand-git-branch-merge- и-rebase предлагают какую-то документацию по теме «rebase» – VonC

1

Да. Конфликтующие изменения будут объединены, что в основном является точкой хорошего DVCS.

3

Я, как правило, строю ветку для своих изменений и периодически переустанавливаю ее поверх верхнего кода.

Смежные вопросы