Я несколько удивлен, что ответы до сих пор, похоже, не учитывают две вещи:
- Не все модификации, сделанные программистами, предназначены или подходят для отправки в проект с открытым исходным кодом.
- Даже если это так, если во время работы над кодом в репозитории есть обновление, вам очень часто нужно объединить эти изменения в вашу рабочую копию.
Хорошо то, что, поскольку вы работаете с приличным программным обеспечением для контроля версий, обычно не так уж сложно сделать то, что вам нужно. Я занимаюсь подрывной деятельностью (из-за политики компании), поэтому я ничего конкретно не знаю о GIT, но после прочтения эта вики-статья, похоже, почти то же самое. Вам не нужно повторно применять исправления, если вы соответствуете файлам в своем локальном репозитории. Вы можете обновить локальную копию с уже примененными исправлениями!
Ваш пользовательский код, вероятно, затрагивает очень небольшую часть кода репозитория. Вполне вероятно, что большинство изменений в репозитории не коснутся того же кода, что и вы. Вам просто нужно будет использовать команду git pull, чтобы загрузить весь обновленный код. Когда разделы, которые вы коснулись, будут изменены в репозитории, git сделает все возможное, чтобы объединить эти изменения. Единственный раз, когда вам нужно отредактировать файлы вручную, это то, что git обнаруживает конфликт, который не может разрешить. В статье, о которой я упоминал ранее, говорится об этом.
Вы можете использовать свой любимый текстовый редактор, но на самом деле в этом случае довольно удобно использовать инструмент трехстороннего слияния. Meld — один из таких инструментов для Linux, но я уверен, что их много.
person
Benjamin Leinweber
schedule
15.07.2013