Змусити Git завжди обирати нову версію під час злиття?


103

Припустимо, що я mergegit і є конфлікт злиття.

Моє запитання: як я можу змусити git завжди вибирати нову версію коду в конфлікті, щоб мені не потрібно було вирішувати конфлікт вручну?



але я хочу зробити злиття (не переосмислюючи коміти), але додатково вирішувати конфлікти автоматично.
bartek

Відповіді:


188

Це не зовсім "новіша" версія, але ви можете сказати git завжди віддавати перевагу версії в поточній гілці, використовуючи git merge branch -X ours, або віддавати перевагу версії гілки, об'єднаній, використовуючи git merge branch -X theirs.

Від man git-merge:

наші:

Цей параметр змушує конфліктувати протиріччя, щоб автоматично вирішуватись, віддаючи перевагу нашій версії. Зміни з іншого дерева, які не суперечать нашій стороні, відображаються на результаті злиття. Для двійкового файлу весь вміст береться з нашої сторони.

їх:

Це протилежне "нашому".


9
ours- theirs!! Просто скажіть це, і ви зрозумієте, що робить команда! Я люблю Git! : D
Haywire

14
Примітка: якщо ви вже користувалися git merge branch, вам потрібно буде це зробити, git merge --abortперш ніж це зробити.
Джон Дворак

1
Не працює для мене. Це все одно перериває злиття. error: The following untracked working tree files would be overwritten by merge:Я навіть не знаю, чому саме ці файли знаходяться в цій гілці в першу чергу, але їх слід перезаписати, а git відмовляється.
mcv

2
Якщо вони не відслідковуються, їх потрібно спочатку видалити (або git add). Почитайте трохи про те git clean, що може допомогти вам у цьому.
Ренато Заннон

Після запуску git merge ours, якщо є деякі конфліктні файли, буде якийсь журнал? і я міг відстежувати з git merge ours?
zx1986

19

Я використовую це,

git fetch --prune
git reset --hard origin/master

2
Це рішення допомогло мені виправити нерозгалужені конфлікти, коли все, що я хотів, - це перекрити головну галузь. Я використав скидання git - твердий майстер (з місцевих)
Хуан Мендес,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.