Git Объединить по типу файла

голоса
1

У меня две ветви, Git мастер и mybranch. Mybranch имеет все правильные * .json файлы, и мастер имеет все другие типы файлов правильно. Как объединить их?

Есть много, много конфликтов слияния во всех файлах. Если бы я мог каким-то образом объединить по типу файла, я не должен был бы пройти через все слияния файлов.

Задан 07/11/2018 в 20:11
источник пользователем
На других языках...                            


2 ответов

голоса
2

git checkoutесть варианты --oursи --theirsполучить соответствующие версии во время слияния. Таким образом , вы делаете что - то вроде

git checkout master
git merge mybranch
git checkout --theirs -- *.json
git checkout --ours -- <the-other-files>
git add .
git commit

где вы будете играть с оболочкой немного , чтобы список файлов , которые вы хотите извлечь из той или иной отрасли. После того, как Вы проверяете нужные версии на рабочем дерево, addследует очистить записи конфликтов.

Помните, что --oursэто отрасль , что вы прошли в качестве аргумента в начальной checkoutи --theirsявляется филиалом , который вы прошли , как аргумент merge.

Кроме того , прежде чем звонить add, вы можете изменить свой ум с --oursи --theirs, поскольку индекс по- прежнему содержит все версии. Таким образом , вы должны быть на самом деле в состоянии сделать , git checkout --ours -- .а затем git checkout --theirs *.json.

Ответил 07/11/2018 в 21:39
источник пользователем

голоса
0

Учитывая , который вы хотите объединить Mybranchв мастер, общий совет будет:

git checkout master
git merge Mybranch 

Если есть слияние конфликтов - решать их.

Он рекомендуется часто выполнять перебазироваться на хозяин или слияние с местным отделением, чтобы избежать огромного количества конфликтов слияния , когда вы готовы внести изменения из вашего местного отделения в мастер.

UPD: Самое быстрое решение будет использовать заплатку:

  1. Checkout мастер филиала.

  2. Создать заплатку только для JSON-файлов.

    git diff master Mybranch *.json > json.diff

  3. Применить диф.

    git apply json.diff

  4. Фиксация изменений.

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

Ответил 07/11/2018 в 20:16
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more