Какой лучший способ объединить внешние изменения в моем репозитории Git? - PullRequest
14 голосов
/ 28 апреля 2011

У меня есть проект в репозитории Git, и мне отправлены изменения, сделанные вне Git. Эти изменения основаны на более ранней версии, в которую я вносил изменения в себя. Каков наилучший способ объединить эти внешние файлы с моими?

Большое спасибо!

Ответы [ 3 ]

11 голосов
/ 28 апреля 2011

Лучший способ - сообщить git, на каком коммите они основаны, чтобы дать вам лучший шанс автоматического слияния.

  1. git checkout <sha1 of the old commit> -b mybranch, чтобы перемотать ваше рабочее дерево и начать новую ветвь.
  2. Если изменения были отправлены как diff, используйте git-apply, чтобы применить их к рабочему дереву, иначе просто поместите обновленные файлы в.
  3. Добавить и зафиксировать файлы.
  4. git checkout master, затем git merge mybranch.
4 голосов
/ 28 апреля 2011

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

  1. Создайте ветку при фиксациивы считаете себя основой измененного файла
  2. Добавьте измененный файл
  3. Commit
  4. Объедините ветку с вашей основной веткой разработки
0 голосов
/ 28 апреля 2011

лучший способ для человека, который предоставил изменения, дать патч вместо файлов.Но если это невозможно, этот другой человек не знает о контроле версий или о чем-то еще, вы можете попробовать зафиксировать все оставшиеся изменения в ветке, над которой вы сейчас работаете.Желательно также стараться избегать неотслеживаемых файлов.Затем скопируйте эти файлы в git-репо и запустите git status, и вы увидите, какие изменения происходят в сравнении с состоянием вашего репо, и затем вы можете решить, что вы будете делать с ними

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...