Као софтверски инжењер или веб програмер, можда ћемо морати да унесемо много обавеза у наше Гит спремиште.
Међутим, постоје неки други случајеви у којима желимо да урезујемо датотеке које неће бити гурнуте у наше Гит спремиште. Пре издавања било каквог урезивања, можда ћемо понекад желети да применимо неке додатне промене.
Као ефекат, захтевамо да поништимо последње урезивање кроз наше Гит спремиште. Видећемо како можемо да поништимо последње урезивање у овој теми.
Поништите последњу Гит Цоммит заједно са ресетовањем
Лако можемо да поништимо последњу гит урезивање извршавањем команде, тј. 'гит ресет' заједно са опцијом, тј. '-меко' то ће заштитити све измене урађене у нашим датотекама. Морамо да опишемо урезивање за поништавање које је 'ХЕАД~1'.
Последње урезивање гит-а ће бити избрисано из нашег Гит спремишта.
$ git reset --soft HEAD~1
У овој нотацији,
'ГЛАВА~1': То значи да желимо да ресетујемо ову ГЛАВУ на једно урезивање пре унутар историје дневника.
палиндром у Јави
$ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2)
Какав ће бити ефекат горње команде?
Команда, тј. 'гит ресет' може се посматрати као наредба, односно супротно од 'гит адд' , у суштини убацивање датотека у Гит индекс.
Ако се описује опција за '-меко' , Гит уопште неће променити датотеке унутар индексног или извршног директоријума.
На пример, укључили смо две датотеке у наше недавно урезивање, иако желимо да применимо неке измене у ову датотеку.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit
Као резултат тога, ми ћемо се пријавити 'гит ресет' заједно са опцијом за '-меко' да поништите последње урезивање и такође примените неке додатне промене.
$ git reset --soft HEAD~1 $ git status
Преко гране мајстора
Наша грана је мастер/оригин испред урезивања 1 (примени 'гит пусх' за објављивање наших локалних урезивања).
оператори у Питхон програмирању
Измене које треба извршити:
(apply 'git restore --staged …' to unstage)
нова датотека: филе1
$ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Као што видимо, датотека је и даље у индексу поништавањем последњег урезивања (модификације које треба урезати) иако је урезивање избрисано.
Успешно смо урадили последње урезивање у нашем спремишту.
Хард Ресет Гит урезивање
Можемо размотрити у горњем одељку да можемо лако опозовите последње урезивање и сачувајте модификације урађено за било коју датотеку унутар индекса. Али у неким ситуацијама једноставно желимо да уклонимо измене и урезивања направљене у било којој датотеци.
То је циљ опције, тј. '-тешко' .
верилог увек
Да бисте поништили последњу урезивање и уклонили сваку модификацију унутар индекса и директоријума, извршите команду, тј. 'гит ресет' заједно са опцијом, тј. '-тешко' и опишите урезивање пре команде ХЕАД ('ГЛАВА~1') .
$ git reset --hard HEAD~1
Свако урезивање и модификација биће уклоњена из индекса и директоријума након употребе '--тешко' команда. Зато треба да будемо опрезни.
На пример, све нове датотеке под називом 'филе1' смо урезали у наше Гит спремиште.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Сада претпоставимо да желимо да поништимо последње урезивање и уклонимо сваку промену.
$ git reset --hard HEAD~1
Сада, ХЕАД је на 90ф8бб1 Другом урезивању
Сада, хајде да проверимо стање нашег гит спремишта.
$ git status
Преко гране мајстора
Наша грана је савремена са мастер/оригин (примени команду 'гит пусх' за објављивање наших локалних урезивања).
реплацеалл у стринг јава
Сада, нема шта да се обавеже, а радно дрво је чисто.
Мешовито ресетовање Гит урезивања
Задржите модификације у нашем радном директоријуму, међутим, НЕ у индексу. Морамо применити команду, тј ., 'гит ресет' заједно са опцијом, тј. '-помешан' . Након ове команде, морамо једноставно додати 'ХЕАД~1' последњем урезивању.
$ git reset --mixed HEAD~1
На пример, укључили смо било коју датотеку под називом 'филе1' у било које урезивање које захтевамо да поништимо.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Једноставно, извршавамо наредбу, тј. 'гит ресет' заједно са опцијом, тј. '-помешан' за поништавање последњег урезивања.
Као резултат тога, '-помешан' команда је а 'микс' међу хард и софт ресетовање, тако и његово име.
Преко гране мајстора
Наша грана је мастер/оригин испред урезивања 1 (примени 'гит пусх' за објављивање наших локалних урезивања).
Непраћени фајлови: (примените 'гит адд...' да додате у оно што ће урезати)
file1
Ништа није укључено за урезивање, али датотеке које се не прате су присутне (примените 'гит трацк' за праћење).
Дакле, открили смо још једну праксу да вратимо последње урезивање чувањем модификација урађених на датотекама.
Поништи последњу урезивање заједно са враћањем
Примените команду, тј. 'гит реверт' и описати обавезу да се врати, тј. 'ГЛАВА' на урезивање историје за враћање последњег Гит урезивања.
$ git revert HEAD
Команда 'гит реверт' је другачија у поређењу са командом 'гит ресет' јер може да сними било које ново урезивање заједно са неким модификацијама дефинисаним дегенерацијом последњег урезивања.
Можемо описати 'ХЕАД~1' командом 'гит ресет' јер ће ова команда за ресет поставити било које ново ХЕАД место док дегенерише описано урезивање.
Као резултат тога, поново ћемо извршити измене неких датотека за враћање и обавезати се да неће бити извршене. Урезали смо било коју нову датотеку за наше Гит спремиште, али желимо да дегенеришемо ово урезивање.
креирање табеле пророчишта
$ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Ако извршите команду 'гит реверт', Гит ће отворити наш уређивач текста да аутоматски унесе измене.
Нова порука ће се приказати заједно са новим хешом урезивања када завршимо са извршавањем поруке урезивања.
[master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1
Ако морамо поново да проверимо нашу историју Гита, можемо приметити да је додато ново урезивање да поништи последњу урезивање кроз наше спремиште.
$ git log --oneline --graph *2d40a2c (HEAD -> master) Revert 'Added a new file named file1' *1fa26e9 Added a new file named as file1 *ee8b133 Second commit *a3bdedf Initial commit