Bevezetés az egyesülési konfliktus megoldásához a GIT-ben

A több elosztott fejlesztő közötti konfliktusok megoldásához szükséges hozzájárulások kezelése a verzióvezérlő rendszerek egyik fő feladata. Az egyesülési konfliktusok megoldásához először meg kell értenünk, hogy mi az. Ez az azonos kód különböző verzióinak egyesítésekor merül fel, és a verzióvezérlő rendszer kezeli, leginkább akkor, amikor egy fejlesztő törli a fájlt, míg egy másik fejlesztő még módosította, vagy amikor több ember megpróbálja megváltoztatni egy fájl ugyanazt a sorát. Ebben a cikkben többet megismerünk a Git egyesítési konfliktusokról, azok okairól és megoldásának módjáról.

Mi az egyesítési konfliktus a GIT-ben?

A Git nagyon egyszerűvé tette az egyesítést, mivel automatikusan integrálja az új változtatásokat a git merge paranccsal. Konfliktusok esetén azonban csak az egyesülő fejlesztő ismeri a konfliktust, míg a többi nem ismeri. Tehát amit Git csinál, leállítja az összevonási folyamatot, és konfliktusokként jelzi a fájlt. A fejlesztő ezután megtalálja és megoldja a konfliktust. Az összeolvadás során a konfliktusok az alábbiakban ismertetett módon fordulhatnak elő:

  • Az egyesítés elmulasztása

A jelenlegi projekt munkakönyvtárában lévő függőben lévő változások esetén az egyesítés kudarcot valósíthat meg, mivel az összevonás során a kötelezettségvállalók felülírhatják azokat. De stabilizálható különféle git parancsokkal, például git checkout / stash / reset / įsipareig.

  • Hiba az egyesülés során

Ha az egyesítés során hiba történik, akkor ez azt jelzi, hogy ütközés van az egyesítendő ág és az aktuális ág között. Bár Git konfliktusok nélkül megpróbálja egyesíteni a fájlokat, de ha ezt nem tudja megtenni, akkor a rajtad múlik, hogy manuálisan oldja meg.

Hogyan hozhat létre fájlösszevonási konfliktust?

Vegyünk egy példát az összevonási konfliktus bemutatására / megoldására a GIT-ben a Git felület parancssori segítségével.

$ mkdir git-merge-test
$ cd git-merge-test
$ git init
$ echo "Mess with this content" > new_merged.txt
$ git add new_merged.txt
$ git commit -am"Committed the earlier content"
(master (root-commit) d58f73b) Committed the earlier content
1 file changed, 1 insertion(+)
create mode 200548 new_merged.txt

Lássuk soronként, hogy mi történik a fenti parancsrészletben.

  • A git-merge-test új könyvtárat hoz létre, és új Git-tárolót inicializál.
  • Ezután hozzon létre egy új_merged.txt nevű szöveges fájlt, rajta írt valamit.
  • Adja hozzá az újonnan készített szöveget a repóhoz, majd vállalja el.

Van egy új lerakat egy mesterággal és egy new_merged.txt fájl, amelyben van valamilyen tartalom. Ezután létrehozzunk egy újat, amely ütközik az egyesüléssel.

$ git checkout -b newbranch
$ echo "New content" > new_merged.txt
$ git commit -am"Same named file is edited to cause a conflict"
(newbranch 6282319) Same named file is edited to cause a conflict
1 file changed, 1 insertion(+), 1 deletion(-)

A fenti sorok:

  • létrehoz és ellenőriz egy newbranch nevű új ágat.
  • felülírja az new_merged.txt fájl tartalmát.
  • és végül elkötelezi az újonnan létrehozott tartalmat.

Az új fióktelepnek egy elágazással nevezzünk egy kötelezettséget, amely felülírja az new_merged.txt tartalmat

$ git checkout master
Switched to branch 'master'
$ echo "Append" >> new_merged.txt
$ git commit -am"Content appended new_merged.txt"
(master 24fbe3c) Content appended new_merged.txt
1 file changed, 1 insertion(+)

A fenti parancssor nem csak ellenőrzi a mesterágot, hozzáadja az új_merged.txt tartalmat, hanem a végén is végrehajtja azt. Most a példa 2 új kötelezettségvállalással rendelkezik. Az egyik a mesterágban van, és még egy az újboltban. Most már egyesíteni kell az új szót, hogy megnézze, mi történik!

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

Git megmutatja nekünk, hogy felmerült a konfliktus.

Az egyesítési konfliktusok megoldása a GIT-ben

Az összeütközéses fájl szerkesztése az egyik módja az összeolvadási konfliktus eltávolításának. Csak nyissa meg az ütköző fájlt a szerkesztőben, és távolítsa el egyenként a konfliktuselosztókat. A szerkesztés után a git add használatával hozzáadhatja a módosított tartalmat. Új elkötelezettség hozható létre a következő végrehajtással:

git commit -m "merged and resolved the conflict in "

Git biztosítja a konfliktus megoldását, és így új elkötelezett egyesülést hoz létre annak véglegesítése érdekében. Az egyesülési konfliktusok megoldását segítő Git-parancsok a következők:

git log --merge

A git log paranccsal átadott merge –abort listát készít az összevonó ágak közötti ütközésekről.

git status

Segít azonosítani az ütköző fájlokat.

git diff

Segít megtalálni a különbségeket a lerakat vagy egy fájl állapota között. Az egyesülési konfliktusok előrejelzésére és megelőzésére szolgál. Egyes eszközök, például az alábbiakban megadottak, az egyesítés meghiúsulásakor használhatók.

git reset --mixed

A jelenlegi könyvtárban végrehajtott módosítások visszavonására szolgál.

git checkout

A fájlok módosításainak visszavonására, vagy az ág változtatására használják. Bizonyos eszközöket, mint például az alábbiakban megadott, akkor használunk, amikor konfliktusok merülnek fel egyesülés során.

git reset

Az összeütközéses konfliktusok során az ütköző fájlok visszaállítására szolgál.

git merge --abort

A –abort argumentum átadása a git merge segítségével lehetővé teszi az egyesülési folyamat kilépését és az ág visszatérését az eredeti állapotába.

A Git Merge konfliktusok megoldásának előnyei

  • Ágakat, fájlokat vagy lerakatot hoz létre, módosíthat, törölhet konfliktusok nélkül.
  • Használható a kód különböző verzióinak egyesítésére.
  • Ezenkívül elősegíti a távoli ágak módosítását és ellenőrzését is, miközben elkerüli a konfliktusokat.
  • Segít kezelni és kezelni a kibocsátásokat konfliktusok nélkül.
  • Az adattár és a folyamat tiszta és olvasható.

Következtetés

A Gitnek számos felhasználási területe van, és a fejlesztők, termékmenedzserek és adattudósok széles körben használják. A Git parancsok nagyon hatékonyak és nagyon hasznosak lehetnek. A gitben konfliktus akkor merül fel, amikor két különféle ág megpróbálja szerkeszteni egy fájl ugyanazt a sorát, vagy egy fájl törlődik egy adott ágban, de egy másikban szerkesztésre kerül. A Git az egyesítések nagy részét sikeresen kezeli az egyesítési funkciókkal, de manuálisan is megoldható olyan eszközökkel, mint a git állapot, a git reset, a git checkout és a Git log.

Ajánlott cikkek

Ez egy útmutató az egyesítési konfliktus megoldására a GIT-ben. Itt tárgyaljuk, hogyan lehet hatékonyan megoldani a Git Merge konfliktusokat különféle parancsokkal, annak előnyeivel együtt. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Git alternatívák előnyeivel
  2. Bevezetés a Git eszközökbe
  3. GitHub vs SVN - Legfontosabb különbségek
  4. A 11 legfontosabb GIT interjúkérdés
  5. Git Push
  6. Tableau verziók
  7. Teljes útmutató a Git távoli parancshoz
  8. Git életciklus három szakaszában a munkafolyamat

Kategória: