Pakeisti šaknį, padarytą git?

Yra būdų, kaip pakeisti pranešimą iš vėlesnių įsipareigojimų:

22 янв. nustatyta iki 13 metų sausio 22 d 2010-01-22 21:21 '10, 21:21, 2010-01-22 21:21
@ 5 atsakymai

Darant prielaidą, kad turite švarų darbo medį, galite tai padaryti.

243
22 янв. CB Bailey atsakymas, sausio 22 d 2010-01-22 21:53 '10, 21:53, 2010-01-22 21:53

Dabar, kaip ir Git versijoje 1.7.12 , galite naudoti

border=0
 git rebase -i --root 
477
31 янв. atsakymą pateikė ecdpalma sausio 31 d 2013-01-31 19:24 '13, 19:24, 2013-01-31 19:24

Norėdami išplėsti „ ecdpalma“ atsakymą , dabar galite naudoti „root “ --root norite pasakyti, ką norite perrašyti šaknį / pirmąjį:

 git rebase --interactive --root 

Tada šaknies pataisa bus rodoma iš naujo įdiegus TODO sąrašą, ir galite pasirinkti redaguoti arba pakartotinai spausdinti:

 reword <root commit sha> <original message> pick <other commit sha> <message> ... 

Šis paaiškinimas yra --root į „Git“ perkėlimo dokumentus (mano dėmesys):

Atkurti visus įsipareigojimus, kuriuos galima gauti iš <branch> o ne tik į <upstream> . Tai leidžia iš naujo nustatyti šakos užrakto šaką .

57
14 июля '13 в 22:47 2013-07-14 22:47 atsakymą pateikė vartotojo456814 liepos 14 d. 13 val. 22:47 2013-07-14 22:47

Jei paprasčiausiai sukuriate repo ir iš anksto sužinosite, kad ateityje vilkiate per „pirmąją“ fiksaciją, galite išvengti šios problemos, pradėdami tuščią pataisą:

 git commit --allow-empty -m "Initial commit" 

ir tik po to jie pradeda kurti „tikruosius“ įrašus. Tada galite lengvai įdiegti ant šio fiksuoto standarto metodo, pvz., git rebase -i HEAD^

11
06 марта '14 в 21:37 2014-03-06 21:37 atsakymas pateikiamas jakub.g kovo 06 d. 14, 21:37 2014-03-06 21:37

Galite naudoti „ git filter-branch :

 cd test git init touch initial git add -A git commit -m "Initial commit" touch a git add -A git commit -m "a" touch b git add -A git commit -m "b" git log --> 8e6b49e... b 945e92a... a 72fc158... Initial commit git filter-branch --msg-filter \ "sed \"s|^Initial commit|New initial commit|g\"" -- --all git log --> c5988ea... b e0331fd... a 51995f1... New initial commit 
4
22 янв. Alexander Groß atsakymas, sausio 22 d. 2010-01-22 21:46 '10, 21:46, 2010-01-22 21:46