Sobes.tech
Junior — Middle

გთხოვთ ახსნათ rebase ბრძანების მუშაობის პრინციპი Git-ის ვერსიების კონტროლის სისტემაში და რა განსხვავებაა მას merge-თან.

sobes.tech AI

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

git rebase ბრძანება გამოიყენება კომიტების სერიის გადატანაზე ან 'განახლებაზე' ახალი ბაზისზე, ანუ სხვა კომიტზე. იგი საშუალებას აძლევს აიღოს ცვლილებები ერთი ფილიალიდან და 'გაახალწარმოოს' ისინი სხვა ფილიალზე, შექმნის სწორი ისტორია დამატებითი მერჯის კომიტების გარეშე.

განსხვავებები git merge-თან:

  • git merge აერთიანებს ორ ფილიალს და ქმნის ახალი მერჯის კომიტს, რომელიც ინახავს ორივე ფილიალის ისტორიას და განშტოებებს.
  • git rebase გადადის ერთ ფილიალის კომიტებს სხვა ფილიალის ზედა ნაწილზე, ხელახლა წერს ისტორიას და ხდის მას სწორს.

მაგალითი:

თუ გაქვთ feature სახელწოდების ფილიალი, რომელიც გამოყოფილია master-დან, და master-ი განახლებულია, მაშინ:

  • git merge master-ი შექმნის მერჯის კომიტს, რომელიც აერთიანებს ცვლილებებს.
  • git rebase master-ი თქვენს კომიტებს გადაადგილებს მიმდინარე master-ის ზედა ნაწილზე, თითქოს მუშაობა დაიწყეთ ბოლო master-ის მდგომარეობიდან.

Rebase სასარგებლოა სუფთა ისტორიას შენარჩუნებისთვის, მაგრამ საჭიროა სიფრთხილე, როდესაც მუშაობთ საჯარო ფილიალებთან, რათა არ გადაწეროთ საერთო ისტორია.