Sobes.tech
Junior

როგორ ხსნით კონფლიქტებს Git-ში?

sobes.tech AI

პასუხი AI-სგან

Pull ან rebase-ის დროს ცვლილებები ერთიანდება. თუ Git ვერ შეძლებს ავტომატურად გადაწყვიტოს ფაილში კონფლიქტური ხაზები, ის მათ სპეციალური მარკერებით აღნიშნავს:

<<<<<<< HEAD
მიმდინარე ფილიალის ხაზი
=======
შეერთების ფილიალის ხაზი
>>>>>>> feature/ახალი-ფუნქცია

კონფლიქტის გადაჭრისთვის:

  1. გახსენით კონფლიქტში მყოფი ფაილი რედაქტორში.

  2. ხელით ჩაასწორეთ ფაილი, აირჩიეთ ორივე ვერსიიდან საჭირო ნაწილები ან შექმენით ახალი კომბინაცია.

  3. წაშალეთ <<<<<<<, =======, >>>>>>> მარკერები.

  4. შეინახეთ ფაილი.

  5. დაამატეთ გადაჭრილი ფაილი ინდექსში git add-ით:

    # კონკრეტული ფაილის დამატება
    git add გზა/მიმდინარე/ფაილი.txt
    
    # ყველა გადაჭრილი ფაილის დამატება
    git add .
    
  6. შეასრულეთ commit, რათა დასრულდეს შერწყმა:

    # შერწყმის დროს
    git commit -m "შერიგის კონფლიქტი გადაჭრილი"
    
    # rebase-ის დროს
    git rebase --continue
    

თუ კონფლიქტები ბევრი ან რთულია, შეგიძლიათ გამოიყენოთ შერწყმის ინსტრუმენტები:

git mergetool

ეს გახსნის გრაფიკულ ინსტრუმენტს, რომელიც დაგეხმარებათ ნაბიჯ-ნაბიჯ გადახედოთ კონფლიქტებს.

რეიბე-ის დროს თუ გაჩნდება სირთულეები, შეგიძლიათ გამოიყენოთ:

  • git rebase --abort: რეიბე-ის გაუქმება და წინა მდგომარეობაში დაბრუნება.
  • git rebase --skip: მიმდინარე კონფლიქტური commit-ის გამოტოვება (რისკიანი შეიძლება იყოს).

მნიშვნელოვანია, რომ კონფლიქტების გადაჭრის შემდეგ ჩაატაროთ ტესტირება, რათა დარწმუნდეთ, რომ კოდი სწორად მუშაობს.