Sobes.tech
Junior

Hogyan egyesíthetjük több commitot egybe a Git segítségével?

sobes.tech MI

Válasz az MI-től

Több commit egyesítéséhez Git-ben a git rebase -i <commit-ish> parancsot használja.

  1. Határozza meg azt a commitot, ameddig össze szeretné vonni. Ez lehet egy commit hash, ág vagy címke.
  2. Futtassa a git rebase -i <commit-ish> parancsot. Például, hogy az utolsó 3 commitot egyesítse:
    git rebase -i HEAD~3
    
  3. Megnyílik egy szövegszerkesztő a commitok listájával. Az első commit a listában (felső) legyen a pick szóval. A többi commit, amit össze szeretne vonni az elsővel, pick helyett squash vagy s legyen.
    pick abcd123 Kezdeti commit
    squash efgh456 Az A funkció 1. része
    squash ijkl789 Az A funkció 2. része
    ...
    
  4. Mentse el és zárja be a szerkesztőt.
  5. Egy új szerkesztő nyílik meg, ahol a commit üzenetét írhatja. Egyesítse vagy szerkessze a commit üzeneteket, hogy egy értelmes üzenetet hozzon létre az új összevont commithoz.
    // Az új összevont commit üzenete
    
    // Ez 3 commit egyesítése.
    
    // Kezdeti commit
    // Az A funkció 1. része
    // Az A funkció 2. része
    
  6. Mentse el és zárja be a szerkesztőt. A Git végrehajtja a commitok egyesítését.

Ha az ága, amin dolgozik, már fel lett pusholva egy távoli tárhelyre, akkor erőltetett push-t kell végrehajtania az -f vagy --force-with-lease zászlóval.

git push origin <az_ágad> -f

Ez szükséges, mert a commit történet megváltozott. Az erőltetett push veszélyes lehet, ha más fejlesztők már dolgoznak ezen az ágon. Mindig ellenőrizze, hogy biztonságos-e az erőltetett push.

Alternatívaként használhatja az --fixup és --autosquash zászlókat a commitoknál, majd futtassa a git rebase -i --autosquash <commit-ish> parancsot az automatikus egyesítéshez.