Какой лучший способ объединить внешние изменения в моем репозитории Git?
У меня есть проект в репозитории Git, и мне были отправлены изменения, которые были сделаны вне Git. Эти изменения основаны на более ранней версии, которую я вносил в меня изменения. Каков наилучший способ объединить эти внешние файлы с моими?
Большое спасибо!
Ответы
Ответ 1
Лучший способ - сообщить git, с какой целью они были основаны, чтобы дать вам наилучшие шансы на автоматическое слияние.
-
git checkout <sha1 of the old commit> -b mybranch
, чтобы перемотать свое дерево работы и начать новую ветку.
- Если изменения были отправлены как diff, используйте
git-apply
, чтобы применить их к дереву работ, иначе просто поместите обновленные файлы.
- Добавить и зафиксировать файлы.
-
git checkout master
, затем git merge mybranch
.
Ответ 2
Вам нужно действовать точно так же, как если бы вы работали с этими файлами, поэтому скопируйте их из состояния более ранней версии, о которой вы говорите:
- Создайте ветку в фиксации, которую вы считаете базой модифицированного файла.
- Добавить измененный файл
- Фиксировать
- Слейте ветку в свою основную ветку развития.
Ответ 3
лучший способ для человека, который предоставил изменения, чтобы дать патч вместо файлов. Но если это невозможно, этот человек не контролирует контроль версий или что-то еще, вы можете попытаться выполнить все ваши выдающиеся изменения в ветке, в которой вы сейчас работаете. Предпочтительно старайтесь избегать любых файлов без следа. Затем скопируйте эти файлы в репозиторий git и запустите git status
, и вы увидите, какие изменения по сравнению с состоянием вашего репо, а затем вы можете решить, что вы будете делать с ними.