Обновление ветки функций в Git с необработанным исходным кодом - PullRequest
2 голосов
/ 25 февраля 2011

У меня есть собственная ветка функций, которую я добавил в код с помощью git. К сожалению, обновления для основного кода происходят часто и не имеют контроля версий. Я получаю исходный код каждый раз.

Как правильно обновить мою ветку функций более новой версией кода? У меня нет истории, показывающей, как код был обновлен ...

Итак: существует ли команда для ввода более нового необработанного исходного кода в основную ветку, а затем автоматически объединить все файлы, которые я не трогал, но которые были обновлены?

Ответы [ 3 ]

2 голосов
/ 25 февраля 2011

Создайте ветку (называемую как хотите, может быть, «vendor») и фиксируйте каждую новую версию исходного кода, которую вы получаете в эту ветку.Git выяснит, что отличается между новым кодом и предыдущим, и затем вы можете объединить его с вашим кодом:

git checkout master
git merge vendor

Будет проще, если вы начнете с исходного источника, который вы начали изменять (т. е. ваш первый коммит в Git), и разветвите ветку "vendor" с этой точки.

1 голос
/ 16 ноября 2012

Обратите внимание, что с тех пор у вас есть "официальная" модель для управления функциональной веткой с помощью git: gitflow .

См. " Почему нетВы используете git-flow?"

git flow feature rebase

переместит вашу функциональную ветку поверх master (регулярно обновляемой) ветви.

0 голосов
/ 25 февраля 2011

Существует инструмент git-load-dirs, который, кажется, является частью vcs-load-dirs , но больше не поддерживается автором. Я знаю, что другие инструменты, такие как git-buildpackage (для Debian), используют git-load-dirs, чтобы взять архив с исходным кодом и импортировать его как новую версию для основной ветки разработки, чтобы создать собственную историю версий для основной ветки разработки.

Чтобы это работало, я считаю, что вам нужна нетронутая ветвь для использования в качестве истории восходящего потока, поэтому вам нужно либо использовать master и никогда не фиксировать свою собственную работу, либо использовать другую ветвь для истории восходящего потока, такую ​​как 'upstream' .

...