В оригінальному плакаті зазначено:
Найкращою відповіддю, яку хтось міг дати мені, було використання git revert
X разів, поки я не досягну бажаного завдання.
Отже, скажімо, я хочу повернутись до зобов’язання, яке становить 20 фіксів, я повинен був би виконати його 20 разів.
Чи є простіший спосіб зробити це?
Я не можу використовувати скидання, оскільки ця репо-версія є загальнодоступною.
Не обов’язково використовувати git revert
X разів. git revert
може прийняти діапазон комісій як аргумент, тому вам потрібно використовувати його лише один раз, щоб відновити діапазон комітетів. Наприклад, якщо ви хочете відновити останні 20 комітів:
git revert --no-edit HEAD~20..
Діапазон фіксації HEAD~20..
короткий для HEAD~20..HEAD
, і означає "починати з 20- го батьківського комітету HEAD і повертати всі комісії після нього до HEAD".
Це поверне останні 20 комісій, припускаючи, що жоден з них не є об'єднанням. Якщо є об'єднання об'єднань, ви не можете відновити їх усі в одній команді, вам потрібно буде відновити їх окремо
git revert -m 1 <merge-commit>
Зауважте також, що я перевірив, використовуючи діапазон із git revert
використанням git версії 1.9.0. Якщо ви використовуєте старішу версію git, використання діапазону з git revert
можливим або не може працювати.
У цьому випадку git revert
віддається перевага git checkout
.
Зауважте, що на відміну від цієї відповіді, яка говорить про використанняgit checkout
, git revert
фактично видалить будь-які файли, додані до будь-якого з комітетів, які ви ревертуєте , що робить це правильним способом відновити діапазон змін.
Документація