[[oktatas:programozas:verziokontroll:git|< Git]] ====== Git javítás ====== * **Szerző:** Sallai András * Copyright (c) 2023, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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 " --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 " --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 ez nem ajánlott! git rebase -i --root Egy szerkesztőben megjelenik az összes 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 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 " --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