Sobes.tech
Junior

Git-ში force push რა არის?

sobes.tech AI

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

Git-ში (git push --force ან git push -f) Force push გადწერავს დისტანციურ რეპოზიტორიის ისტორიას. ნაცვლად იმისა, რომ დაამატოთ კომიტები არსებულ ბრანჩზე დისტანციურ სერვერზე, იგი ძალით აყენებს დისტანციურ ბრანჩს იმავე მდგომარეობაში, როგორც ლოკალური.

ძირითადი რისკი: თქვენ შეიძლება უკვალოდ დაკარგოთ კომიტები, რომლებიც იყო დისტანციურ ბრანჩზე, მაგრამ არ არის თქვენს ლოკალურ ბრანჩზე.

ეს გამოიყენება ფრთხილად, ჩვეულებრივ შემდეგ შემთხვევებში:

  • ბოლოსანდრო კომიტის გამოსწორება: თქვენ ლოკალურად გააკეთეთ git commit --amend და გსურთ განაახლოთ დისტანციური სერვერი ამ გამოსწორებული კომიტით.
  • Rebase: თქვენ განახორციელეთ git rebase, რათა გადაწეროთ ისტორია და გსურთ განაახლოთ დისტანციური ბრანჩი, რათა ის ასახავდეს ახალ ისტორიას.
  • წინა მდგომარეობის დაბრუნება: გსურთ მთლიანად შეცვალოთ დისტანციური ბრანჩი ძველი ვერსიით.

არ არის რეკომენდებული force push გამოყენება იმ ბრანჩებზე, სადაც სხვა დეველოპერები მუშაობენ, რადგან ეს შეიძლება დაარღვიოს მათი სამუშაო პროცესი.

ალტერნატიული, რომელიც არ გადწერს ისტორიას: git push --force-with-lease. ეს შეასრულებს ძალადობრივ გადმოსაწერას მხოლოდ იმ შემთხვევაში, თუ დისტანციურ ბრანჩში არ არის კომიტები, რომლებიც თქვენ არ გაქვთ ლოკალურად. ეს ამცირებს სხვა ცვლილებების დაკარგვის რისკს.

// გამოყენება force push (მაშინაც კი, საშიში!)
git push origin main --force

// უფრო უსაფრთხო ალტერნატივა
git push origin main --force-with-lease