Почећемо са додавањем неколико датотека. При последњем урезивању додаћемо и избрисати датотеке како бисмо створили неуредну ситуацију. Тада ћемо се вратити у стање пре хаоса.
Можете да креирате фасциклу која се зове / тест и покренете следеће команде да бисте иницијализовали Гит и креирали ситуацију описану горе (Ми намерно радимо одвојене завезе да бисмо креирали историју):
$ гит инитИницијализовано празно Гит спремиште у / Усерс / закх_еецс / _ворк / ЛеарнГИТ / гит_реверт / тест /.гит /
$ ецхо к> датотека_1.ткт
$ гит адд -А
$ гит цоммит -м "Додавање датотеке_1.ткт "
[мастер (роот-цоммит) 08цаф5д] Додавање датотеке_1.ткт
1 датотека промењена, 1 уметање (+)
креирајте режим 100644 филе_1.ткт
$ ецхо и> филе_2.ткт
$ гит адд -А
$ гит цоммит -м "Додавање датотеке_2.ткт "
[мастер ба18а2ф] Додавање датотеке_2.ткт
1 датотека промењена, 1 уметање (+)
креирајте режим 100644 филе_2.ткт
$ ецхо з> филе_3.ткт
$ гит адд -А
$ гит цоммит -м "Додавање датотеке_3.ткт "
[мастер 97ф09ад] Додавање датотеке_3.ткт
1 датотека промењена, 1 уметање (+)
креирајте режим 100644 филе_3.ткт
$ ецхо у> филе_4.ткт
$ гит адд -А
$ гит цоммит -м "Додавање датотеке_4.ткт "
[мастер 9цаф084] Додавање датотеке_4.ткт
1 датотека промењена, 1 уметање (+)
креирајте режим 100644 филе_4.ткт
$ ецхо в> филе_5.ткт
$ гит адд -А
$ гит цоммит -м "Додавање датотеке_5.ткт "
[мастер 3ф228б2] Додавање датотеке_5.ткт
1 датотека промењена, 1 уметање (+)
креирајте режим 100644 филе_5.ткт
Ако проверимо нашу фасциклу, требало би да видимо следећу ситуацију:
$ лс -1филе_1.ткт
филе_2.ткт
филе_3.ткт
филе_4.ткт
филе_5.ткт
Ако проверимо историју, требало би да имамо следеће датотеке:
$ гит лог --онелине3ф228б2 Додавање датотеке_5.ткт
9цаф084 Додавање датотеке_4.ткт
97ф09ад Додавање датотеке_3.ткт
ба18а2ф Додавање датотеке_2.ткт
08цаф5д Додавање датотеке_1.ткт
Хајде сада да направимо пустош, избрисаћемо неколико датотека и додати лошу датотеку.
$ рм датотека_2.ткт$ рм датотека_4.ткт
$ ецхо в> ми_бад_филе.ткт
$ гит адд -А
$ гит цоммит -м "Додавање и брисање датотека без размишљања о последицама"
[мастер 879фбф8] Додате и избрисане датотеке без размишљања о последицама
3 датотеке су промењене, 1 уметање (+), 2 брисања (-)
начин брисања 100644 филе_2.ткт
начин брисања 100644 филе_4.ткт
креирај режим 100644 ми_бад_филе.ткт
Ово је услов наше фасцикле:
$ лс -1филе_1.ткт
филе_3.ткт
филе_5.ткт
ми_бад_филе.ткт
И ово је услов наше историје:
$ гит лог --онелине879фбф8 Додате и избрисане датотеке без размишљања о последицама
3ф228б2 Додавање датотеке_5.ткт
9цаф084 Додавање датотеке_4.ткт
97ф09ад Додавање датотеке_3.ткт
ба18а2ф Додавање датотеке_2.ткт
08цаф5д Додавање датотеке_1.ткт
Схватамо да не желимо последњи урез 879фбф8. Дакле, користимо следећу наредбу реверт:
$ гит враћа 879фбф8Отвориће се текстуални прозор за уређивање аутоматског коментара:
Врати „Додате и избрисане датотеке без размишљања о последицама“Ово враћа урезивање 879фбф849ц4бд6фб9а377604д6355ц76б92а832ц.
# Унесите поруку урезивања за ваше промене. Линије почињу
# са '#' ће се занемарити, а празна порука прекида урезивање.
# О мајстору гране
# Измене које треба извршити:
# Нова датотека: датотека_2.ткт
# Нова датотека: датотека_4.ткт
# Избрисано: ми_бад_филе.ткт
#
Можете да измените коментар. Задржаћемо је онакву каква јесте. Чим сачувате прозор коментара, извршиће се задатак враћања:
$ гит враћа 879фбф8[мастер 6е80ф0е] Врати „Додате и избрисане датотеке без размишљања о последицама“
3 датотеке су промењене, 2 уметања (+), 1 брисање (-)
креирајте режим 100644 филе_2.ткт
креирајте режим 100644 филе_4.ткт
начин брисања 100644 ми_бад_филе.ткт
Погледајмо сада нашу фасциклу:
$ лс -1филе_1.ткт
филе_2.ткт
филе_3.ткт
филе_4.ткт
филе_5.ткт
Наше датотеке се враћају у низу као и раније. Враћени су сви додаци и брисања. Проверимо евиденцију:
$ гит лог --онелине6е80ф0е Врати „Додате и избрисане датотеке без размишљања о последицама“
879фбф8 Додате и избрисане датотеке без размишљања о последицама
3ф228б2 Додавање датотеке_5.ткт
9цаф084 Додавање датотеке_4.ткт
97ф09ад Додавање датотеке_3.ткт
ба18а2ф Додавање датотеке_2.ткт
08цаф5д Додавање датотеке_1.ткт
Нова је обавеза 6е80ф0е. Све промене које су биле део 879фбф8 је поништено, а затим почињено у 6е80ф0е.
Упозорење: Команда Гит ресет вам омогућава и да опозовете урезивање. Али у случају ресетовања (посебно хард ресет), то би избрисало 879фбф8 почини се као да се никада није догодило и не би било 6е80ф0е урадити. Помоћу наредбе за враћање сви могу да виде промене које су се догодиле. У случају ресетовања није остао траг. Стога је лоша идеја користити наредбу ресет у јавном спремишту, јер то може изазвати масовну забуну. Златно правило је - немојте користити ресет у јавним спремиштима, користите повратак који је сигурнији.
У закључку:
Наредба Гит реверт је брз и прикладан начин да исправите своје грешке. То је наредба коју бисте требали запамтити ако редовно радите са Гит-ом.
Даље истраживање:
- хттпс: // гит-сцм.цом / доцс / гит-реверт
- хттпс: // гит-сцм.цом / доцс / гит-ресет
- Гит: Научите контролу верзија помоћу Гит: Корак по корак Водич за крајње почетнике
- Контрола верзија са Гит-ом: Моћни алати и технике за заједнички развој софтвера
- Про Гит, друго издање