Мой общий подход состоит в том, чтобы иметь две ветви: upstream
и master
.Создайте свой репозиторий (который запустит вас в ветке master
), проверьте последнюю копию используемого вами вышестоящего кода, а затем создайте ветку upsteram
с git branch upstream
.Кроме того, создайте тег, указывающий, какую исходную версию вы импортировали, например git tag wordpress-1.0
.Для этого я обычно использую облегченные теги (без аннотаций, просто указатель на ревизию).
[wordpress-1.0] Key: [tag]
v branch
* <- upstream * commit
^- master
Теперь, пока вы все еще в ветке master
, скопируйте изменения иотметьте их. Теперь у вас есть две ветви: upstream
, которая содержит первоисточник вверх по течению, и master
, которая содержит ваши изменения, с историей, показывающей, какие изменения вы внесли в upstream
.
[wordpress-1.0]
v
* <- upstream
\
+--* <- master
Сделайте все ваши модификации в ветке master
.
[wordpress-1.0]
v
* <- upstream
\
+--*--*--* <- master
Когда появится новая версия вышестоящего кода, проверьте ветку upstream
(git checkout upstream
), очистите все, кроме каталога .git
, и скопируйте в новую вышестоящую версию.,Используйте git add -A
для внесения всех изменений в предыдущую версию, зафиксируйте их и пометьте.
[wordpress-1.0]
| [wordpress-1.1]
v v
*--* <- upstream
\
+--*--*--* <- master
Теперь, извлеките master
и объедините ваши вышестоящие изменения.На этом этапе вы можете выбрать способ слияния, например, взять новую версию апстрима, взять вашу версию или принять объединенные изменения, так же как вы делаете это при обычном слиянии.
[wordpress-1.0]
| [wordpress-1.1]
v v
*--*--------+ <- upstream
\ \
+--*--*--*--* <- master
Итак, всеВаши изменения происходят в master
, и все последующие версии фиксируются точно так же, как и в upstream
.Это позволит вам наиболее легко увидеть, чем именно ваш код отличается от предыдущей версии, поможет отслеживать, какие изменения вы уже слили с вышестоящей версией и т. Д.
[wordpress-1.0]
| [wordpress-1.1]
| | [wordpress-2.0]
v v v
*--*--------+--*-+ <- upstream
\ \ \
+--*--*--*--*----*--* <- master
Надеюсь, что этоПомогите, дайте мне знать, если у вас есть еще вопросы.