Отменить команду git reset file - PullRequest
0 голосов
/ 12 октября 2018

Я только что выполнил эту команду:

 git reset origin/dev -- package-lock.json 

, но я хочу отменить это, я хочу вернуться к:

 git reset HEAD -- package-lock.json 

, но я думаю, что это может быть слишком поздновернуться в ГОЛОВУ ... как отменить исходную команду?

Может быть:

 git reset HEAD^ -- package-lock.json 

?

Обновление : я думаю, что хотел сделать git checkout origin/dev -- package-lock.json, а не git reset.

1 Ответ

0 голосов
/ 12 октября 2018

git reset <em>commit</em> -- <em>path</em> означает: скопировать файл path из commit в индекс.

Вы не можете отменить это, поскольку он перезаписывает любой файл в индексе для этого пути.

К счастью, вам редко когда нужно , чтобы отменить это, потому что копия, которая была в индексе, вероятно, тоже где-то еще.Если это так, просто скопируйте , который скопирует в индекс.Обычно копия любого файла, содержащегося в индексе, сама является копией какого-либо другого файла: либо копия подтвержденного файла, извлеченная с помощью git checkout, либо копия файла рабочего дерева, добавленная с помощью git add.

Если копия, которая была в указателе, больше нигде не существует, вам не повезло.Но это обычно происходит только с git add --patch или git reset --patch.

Обновление : я думаю, что намеревался сделать git checkout origin/dev -- package-lock.json

Этоозначает: скопировать файл package-lock.json из коммита, обозначенного origin/dev, в индекс, а затем скопировать версию индекса в рабочее дерево. Как и в случае git reset, это перезаписывает все, что было в индексераньше, и эта часть не может быть отменена.После успешной перезаписи индексной версии он также извлекает файл в рабочее дерево, перезаписывая все, что было в рабочем дереве.Это также не может быть отменено - и это меньше вероятно, что у вас есть копия того, что у вас было в рабочем дереве ранее.Так что будьте еще осторожнее с этим git checkout, чем с вышеупомянутым git reset.

В любом случае, если этот равен , что вы имели в виду, вы можете простосделайте это сейчас, переписав все, что вы вставили в указатель ранее, а также переписав копию рабочего дерева.

...