Hoe verander je de commit auteur voor één specifieke commit?
Ik wil de auteur van één specifieke commit in de geschiedenis veranderen. Het is niet de laatste commit.
Ik weet van deze vraag - Hoe verander ik de auteur van een commit in git?
Maar ik denk aan iets, waarbij ik de commit identificeer door hash of short-hash.
1928
3
Interactieve rebase van een punt eerder in de geschiedenis dan de commit die je wilt wijzigen (
git rebase -i
). In de lijst van commits die gerebaset worden, verander je de tekst vanpick
naaredit
naast de hash van de commit die je wilt wijzigen. Als git je dan vraagt om de commit te veranderen, gebruik dan dit:Bijvoorbeeld, als je commit geschiedenis
A-B-C-D-E-F
is metF
alsHEAD
, en je wilt de auteur vanC
enD
veranderen, dan zou je...git rebase -i B
op (hier is een voorbeeld van wat je te zien krijgt na het uitvoeren van hetgit rebase -i B
commando)A
moet bewerken, gebruik dangit rebase -i --root
C
alsD
vanpick
inedit
C
git commit --amend --author="Author Name "
git rebase --continue
D
git commit --amend --author="Author Name "
weer doengit rebase --continue
git push -f
om je origin bij te werken met de bijgewerkte commits.De antwoorden in de vraag waarnaar je linkte zijn goede antwoorden en dekken jouw situatie (de andere vraag is algemener omdat het gaat om het herschrijven van meerdere commits).
Als een excuus om
git filter-branch
uit te proberen, heb ik een script geschreven om de Auteur Naam en/of Email van de Auteur voor een gegeven commit te herschrijven:Als je
git rebase -i
doet, staat er dit interessante stukje in de doc:A-B-C-D-E-F
,B
enD
(= 2 commits) wijzigen,dan kun je dat doen:
git config user.name "Correct new name"
git config user.email "correct@new.email"
git commit --allow-empty -m "empty"
git rebase -i B^
B^
selecteert de ouder vanB
.pick
insquash
moeten veranderen voor deze.Voorbeeld van wat
git rebase -i B^
je zal geven:verander dat in:
Het zal u vragen om de berichten te bewerken:
en je kunt gewoon de eerste paar regels verwijderen.