Fogalomtár › Fejlesztői alapszavak
merge conflict
Akkor keletkezik, amikor ugyanazt a fájlrészt ketten kétféleképpen módosították, és a verziókezelő nem tudja magától eldönteni, melyik változat maradjon.
Érthetően
Képzeld el, hogy ketten kaptok egy-egy másolatot ugyanarról a szerződéstervezetről. Te a harmadik bekezdést írod át, a kollégád ugyanazt a bekezdést, csak másképp. Amikor a két példányt egyesíteni kell, valakinek döntenie kell: a tiéd marad, az övé, vagy a kettő keveréke. Ez a helyzet a merge conflict.
A szoftverfejlesztésben a programkódot verziókezelő rendszer (leggyakrabban a Git) tartja nyilván. Ez teszi lehetővé, hogy sokan dolgozzanak párhuzamosan, mindenki a saját „ágán”. A munkák egyesítése többnyire automatikus: ha te a fájl elejét, más a végét módosította, a rendszer gond nélkül összerakja.
Ütközés akkor van, ha a két módosítás ugyanazokat vagy közvetlenül szomszédos sorokat érint eltérő módon, vagy ha az egyik fél törölt valamit, amit a másik átírt. Ilyenkor a rendszer megáll, és embertől vagy agenttől kér döntést. Ez nem hiba, hanem védelem: a gép nem találgat, és nem írja felül csendben senki munkáját.
Azért került be az AI-fogalmak közé, mert a kódoló agentek ma gyakran párhuzamosan dolgoznak ugyanazon a projekten. Minél több agent ír egyszerre kódot, annál gyakrabban ütköznek a változtatásaik.
Hogyan működik
- Két munka indul ugyanabból a kiinduló állapotból: például két fejlesztő vagy két kódoló agent külön ágon kezd módosítani.
- Egyesítéskor a verziókezelő három változatot vet össze: a közös kiindulót és a két módosítottat. Ahol csak az egyik fél változtatott, ott automatikusan átveszi a változást.
- Ahol mindketten ugyanazokat a sorokat írták át, de másképp, a rendszer megáll, és a fájlban jelölők közé teszi egymás alá a két változatot. Ha véletlenül pontosan ugyanazt írták, nincs ütközés.
- Valaki eldönti, mi legyen a végleges szöveg: az egyik változat, a másik, vagy egy új, amely mindkét szándékot megőrzi.
- A feloldott fájlt késznek jelölik, lefuttatják a teszteket, és az egyesítés lezárul.
Példa a mindennapokból
Megkérsz két kódoló agentet, hogy egyszerre dolgozzanak a webshopodon. Mindkettő a kosár gombjának ugyanazt a kódsorát írja át: az egyik a gomb színét cseréli le, a másik a feliratát. Amikor a két munkát össze akarod vonni, a rendszer jelzi az ütközést, és amíg valaki nem dönt a végleges változatról, az egyesítés áll. Ha a két agent ugyanannak a fájlnak egymástól távoli sorait módosította volna, a rendszer magától összerakta volna a kettőt.
Kit érint
Gyakori félreértés
Korlátok és kockázatok
- A verziókezelő csak a szöveges egybeesést veszi észre: két változtatás akkor is elronthatja együtt a programot, ha más-más sorokat érint, és a rendszer nem jelez ütközést.
- A rossz feloldás csendben eltüntetheti valaki munkáját, ezért utána mindig érdemes tesztelni és átnézni az eredményt.
- Az AI-agentek fel tudják oldani az ütközéseket, de nem mindig ismerik a két módosítás mögötti szándékot, ezért a fontos döntéseket embernek kell ellenőriznie.
- Minél tovább él külön egy ág, annál több és nehezebb ütközés gyűlik fel, ezért a gyakori, kis egyesítés a kifizetődőbb.
Hasonló, de nem ugyanaz
- programhiba (bug) – A bug a program hibás működése, az ütközés viszont csak eldöntetlen kérdés két változat között, amely az egyesítés közben, még annak lezárása előtt kiderül.
- összefésülés (merge) – Az összefésülés maga az egyesítés művelete, amely többnyire simán lefut; az ütközés ennek az a ritkább esete, amikor valakinek döntenie kell.
- build hiba – A build hiba azt jelenti, hogy a kódból nem készíthető futtatható program, ami sikeres, ütközésmentes egyesítés után is előfordulhat.
Kapcsolódó fogalmak
verziókezelés, szoftverfejlesztés, csapatmunka a kódon
ütközésfeloldás, háromutas összefésülés
Git, ág (branch), pull request, kódoló agent, kódáttekintés
Röviden a története
Az ütközés fogalma egyidős a párhuzamos munkát engedő verziókezelőkkel. Már a Git előtti rendszerekben, például a CVS-ben és a Subversionben is mindennapos volt. A Linus Torvalds által 2005-ben létrehozott Git tette igazán gyakorivá, mert az ágak sűrű szétválasztására és egyesítésére épít.
Hol tart most
2026 végén a szoftverfejlesztés mindennapi, jól ismert jelensége, a fejlesztőeszközök beépített feloldófelületet adnak hozzá. A párhuzamosan dolgozó kódoló agentek miatt újra előtérbe került, és a feloldást egyre gyakrabban maguk az agentek végzik emberi ellenőrzés mellett.
Más nevei
merge conflict · merge konfliktus · összefésülési ütközés · összefésülési konfliktus · egyesítési ütközés · Git-ütközés · git conflict · conflict
Források
A szócikk gépi szerkesztéssel készült és gépi szakmai lektoráláson ment át; a „hírekben” rész az Agent Age sztorijaiból automatikusan frissül.