Ви повинні бути обережними, коли говорите "відкат". Якщо у вас була одна версія файлу у фіксації $ A, а пізніше внесені дві зміни в дві окремі коміти $ B і $ C (тому ви бачите третю ітерацію файлу), і якщо ви скажете " Я хочу відкотитися до першого ", ти це справді маєш на увазі?
Якщо ви хочете позбутися змін як другої, так і третьої ітерацій, це дуже просто:
$ git checkout $A file
і тоді ви здійснюєте результат. Команда запитує "Я хочу перевірити файл із стану, записаного комітетом $ A".
З іншого боку, те, що ви мали на увазі - позбутися зміни, внесеної другою ітерацією (тобто введення $ B), при цьому зберігаючи те, що фіксація $ C зробила у файлі, ви хочете повернути $ B
$ git revert $B
Зауважте, що той, хто створив фіксацію $ B, може бути не дуже дисциплінований і, можливо, здійснив цілком неспоріднені зміни в тій самій фіксації, і це відновлення може торкнутися файлів, окрім файлів, на яких ви бачите ображаючі зміни, тому ви можете ретельно перевірити результат після цього тому.
--cached
перевірятиgit diff
. посилання