Как объединить переименованные файлы из одной ветки в оригинальную как новые с помощью git? - PullRequest
0 голосов
/ 10 мая 2018

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

- devel
  - module1
  - module2
- feature
  - module1 (changed)
  - module2 (changed)

Я подумал, что самый простой способ сохранить старую функциональность и получить новую одновременно - это переименовать feature/module1 в feature/module3 и feature/module2 к feature/module4, а затем добавьте файлы ветвей функций в ветку devel, чтобы получить:

- devel
  - module1
  - module2
  - module3
  - module4
- feature
  - module3
  - module4

Как это сделать без изменения devel/module1 и devel/module2?

1 Ответ

0 голосов
/ 10 мая 2018

Ну, если это действительно то, что вы хотите сделать, самое простое решение будет выглядеть примерно так:

Проверьте вашу ветку.

git checkout feature

Скопируйте module1 и module2 в module3и module4 (соответственно).

cp module1 module3
cp module2 module4

Затем выполните одно из двух действий:

Предполагая, что изменения в этих модулях - это все, что вы сделали на feature, вы можете вернуть индекс обратнок тому, что на master.

git revert -n $(git merge-base feature master)..HEAD
git add .
git revert --continue

Или другой подход, который будет работать, даже если вы изменили другие файлы, которые вы не хотите возвращать

git reset $(git merge-base feature master) -- module1 module2
git add .
git commit

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

Но мои два цента, похоже, вы пытаетесь использовать инструмент управления исходным кодом для решения проблемы развертывания, и в долгосрочной перспективе это может быть не очень хорошей идеей.Хотите ли вы поддерживать это самостоятельно в будущем?Вы хотите иметь дело с возможными изменениями в module1 (старый код module1)?В противном случае это может вызвать больше проблем, чем решить (особенно если необходимость одновременного развертывания является временной).

...