< Git

Git javítás

Szerző: Sallai András

Copyright © 2023, Sallai András

Szerkesztve: 2024

Licenc: CC BY-SA 4.0

Web: https://szit.hu

Commit módosítása

Utolsó commit módosítása

git commit --amend

Az utolsó commit egy szerkesztőben nyílik meg. Javítsuk, majd mentsük.

Tulajdonos módosítása

Utolsó commit tulajdonosa

git commit --amend --author="Nagy János <nagy@zold.lan>" --no-edit

A --no-edit hatására a commit szövege nem nyílik meg szerkesztésre. Nélküle a commit szövegét is szerkeszthetjük.

Utolsó commit másként

git config --local user.name "Nagy János"
git config --local user.email nagy@zold.lan
git commit --amend --reset-author --no-edit

3 commit tulajdonosa

Ha szerveren közzé tettük a projektünket, és valaki azt már letöltötte, akkor ez nem ajánlott!

Ha 4 commit van összesen, akkor csak az utolsó 3-t lehet így megváltoztatni.

git rebase -i HEAD^3

A 3 helyére, írjuk be, hány commit tulajdonosát szeretnénk átírni.

Ezzel az utasítással nem lehet az első commit tulajdonosát megváltoztatni.

Egy szerkesztőben megjelenik 3 commit soronként. Minden commit előtt egy pick szó. Amelyik commitnál szernénk javítani, ott cseréljük le a pick szót edit szóra, vagy egy „e” betűre.

edit 066e33e A második modul kész
edit 78b0a4a A harmadik modul kész
edit 84c3807 A negyedik modul kész
# Rebase 84c3807 onto 066e33e (3 commands)
#...

Javítsuk a negyedik commit tulajdonosát:

git commit --amend --author="Nagy János <nagy@zold.lan>" --no-edit

Menjünk a következő commitra:

git rebase --continue

Ezt ismételjük még kétszer.

Az utolsó git rebase --continue utasítás befejezi a rebase módot. Ehhez hasonlót kell lássunk:

Successfully rebased and updated refs/headers/master.

Végül feltöltésnél:

git push -f

Változások feltöltése, a mások commit-jainak változtatása nélkül:

git push --force-with-lease

3 commit 1 parancs

git config --local user.name "Nagy János"
git config --local user.email nagy@zold.lan
git rebase --onto HEAD~3 --exec "git commit --amend --reset-author --no-edit" HEAD~3

Az összes commit tulajdonosának javítása

Ha szerveren közzé tettük a projektünket, és valaki azt már letöltötte, akkor nem ajánlott az összes commit tulajdonosának javítása!

git rebase -i --root

Egy szerkesztőben megjelenik az összes commit soronként. Minden commit előtt egy pick szó. Amelyik commitnál szeretnénk javítani, ott cseréljük le a pick szót edit szóra, vagy egy „e” betűre.

edit f307152 Az első modul kész
edit 066e33e A második modul kész
edit 78b0a4a A harmadik modul kész
edit 84c3807 A negyedik modul kész
# Rebase 84c3807 onto 2360d19 (4 commands)
#...

Mentsünk és zárjuk be a szerkesztőt.

A master ág helyett Rebase módba kerülünk.

Javítsuk a negyedik commit tulajdonosát:

git commit --amend --author="Nagy János <nagy@zold.lan>" --no-edit

Menjünk a következő commitra:

git rebase --continue

Ezt ismételjük még háromszor.

Az utoljára beírt git rebase –continue arról tájékoztat, hogy befejeztük a szerkesztéseket. A következőhöz hasonlót kell látni.

Successfully rebased and updated refs/headers/master.

Végül feltöltésnél:

git push -f

Változások feltöltése, a mások commit-jainak változtatása nélkül:

git push --force-with-lease