Предполагая, что локальный X отклонился от исходного кода после фиксации 123abcd
, вы можете git clone
в новый каталог, создать новый branch-x
в этом коммите, а затем скопировать изменения разработчика в эту ветку и коммит и пу sh это. Затем слияние этого с master
будет следовать обычным Git рабочим потокам.
git clone "$url" upstream
cd upstream
git checkout 123abcd
# detached branch
git checkout -b x-branch
# now copy in changes
cp ../local-x/changedfile ./
cp ../local-x/subdir/*.py ./subdir/
:
git add -A
git commit -m "Checked in changes from 1+ month of random activity"
git push origin branch-x
Нет необходимости per se фактически pu sh этой новой ветке перед ее объединением; но я думаю, что будет намного безопаснее иметь задвинутую, четко определенную точку в истории, к которой можно вернуться, если вам нужно отменить часть или всю вашу последующую работу, чтобы объединить ее с master
.
Если есть любые вновь добавленные файлы, git add
их отдельно перед окончательной фиксацией и sh pu. Очевидно, что если вы можете структурировать это в более чем одну огромную фиксацию, это, вероятно, будет более управляемым для любого, кто попытается понять окончательное слияние с master
.
Разошлась ли локальная ветвь до или после самая первая фиксация на самом деле не является решающим вопросом; теоретически вы могли бы иметь ветку, которая в конечном итоге не укоренилась бы при самой первой фиксации, но я не думаю, что это действительно добавляет здесь какую-либо ценность.