Ви можете використовувати git checkout -p
, що дозволяє вибирати окремі перегони з різниці між вашою робочою копією та індексом для відновлення. Аналогічно, git add -p
дозволяє вибирати лук для додавання до індексу, а також git reset -p
дозволяє вибирати окремі хунки від різниці між індексом та HEAD до того, щоб не виходити з індексу.
$ git checkout -p file/to/partially/revert
# or ...
$ git checkout -p .
Якщо ви хочете заздалегідь зробити знімок у вашому сховищі git, щоб зберегти ці зміни, перш ніж їх повернути, я хочу зробити:
$ git stash; git stash apply
Якщо ви цим часто користуєтесь, ви, можливо, захочете його псевдонімом:
[alias]
checkpoint = !git stash; git stash apply
Повернення окремих елементів або рядків може бути ще простішим, якщо ви використовуєте хороший режим редактора або плагін, який може забезпечити підтримку вибору рядків безпосередньо для повернення, як це -p
може бути дещо незграбно використовувати. Я використовую Magit , режим Emacs, який дуже допомагає працювати з Git. У програмі Magit ви можете запустити magit-status
, знайти розрізки для змін, які ви хочете відновити, виберіть рядки, які ви хочете відновити (або просто покладіть курсор на елементи, які ви хочете відновити, якщо ви хочете повернути лук за раз, а не рядок по черзі) та натисніть, k
щоб повернути ці конкретні рядки. Я дуже рекомендую Magit, якщо ви використовуєте Emacs.