Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗gtPmBrMC 39 of 66 menu

Канфлікт пры зліцці галін у Git

У працэсе зліцця двух галін магчымыя канфлікты, калі ў кожнай з галін мы змянялі адзін і той жа файл. Разгледзім сітуацыю, калі ў абодвух галiнах master і test з папярэдняга ўроку мы змянілі і зрабілі коміт на адзін той жа файл file.txt. А затым ужылі каманду зліцця:

git merge test

У выніку ўбачым памылку:

Auto-merging file.txt CONFLICT (content): Merge conflict in file.txt Automatic merge failed; fix conflicts and then commit the result.

Апрача таго, у файле, які змяняецца, мы ўбачым маркеры канфлікту:

<<<<<<< HEAD тут будуць напісаны змены галіны master ======= тут будуць напісаны змены галіны test >>>>>>> test

У верхняй частцы паведамлення паказаны змены, зробленыя ў асноўнай на дадзены момант галіне, у ніжняй частцы - у другой галіне, якую мы хочам зліць з першай. Для вырашэння канфлікту нам неабходна прывесці змесціва файла да агульнага выгляду, папярэдне выдаліўшы (ўручную ў рэдактары!) усе абазначэнні канфлікту, якія пакінуў у ім Git.

Пасля таго, як мы вырашым канфлікт (гэта значыць пакінем правільны код у файле), праіндексyем наш файл і зробім коміт у галіне master, у якой мы зараз знаходзімся:

git add file.txt git commit -m "зліццё"

Толькі пасля гэтага мы можам пераключыцца на другую галіну test і зрабіць усе тыя ж аперацыі, што і ў галіне master, у тым ліку і замяніць змесціва файла file.txt на тое ж, што і ў першай галіне:

git add file.txt git commit -m "зліццё"

Цяпер мы можам зноў пераключыцца на асноўную галіну і зліць у яе другую:

git switch master git merge test

Наўмысна стварыце канфлікт пры зліцці галiн. Затым вырашыце яго.

byenru