У меня была куча файлов в каталоге git, которые не отслеживались. Я допустил ошибку, выполнив git add .
, затем , совершив и нажав Изменения. Как я могу вернуться к тому, где файлы, которые были отслежены до того, как этот коммит снова не проверен, но все же в каталоге (git reset --hard
удалили все файлы, а не хорошо для меня, вместо того, чтобы их снова отследить). У меня есть много файлов в разных местах, которые нужно не отслеживать, поэтому git reset <FILE>
не будет работать для меня.Undo Добавить файлы в Git
ответ
$ git commit -m "Something terribly misguided" (1)
$ git reset HEAD~ (2)
<< edit files as necessary >> (3)
$ git add ... (4)
$ git commit -c ORIG_HEAD
- Это то, что вы хотите, чтобы отменить
- Это оставляет ваше рабочее дерево (состояние файлов на диске) без изменений, но расстегивает фиксации и оставляет изменения, совершенные unstaged (так они будут отображаются как «Изменения не поставлены для фиксации» в статусе git, и вам нужно будет добавить их еще до совершения). Если вы хотите добавить дополнительные изменения в предыдущую фиксацию или изменить сообщение commit1, вместо этого вы можете использовать git reset --soft HEAD ~, который похож на сброс HEAD, но оставляет ваши существующие изменения.
- Внести исправления в файлы рабочих деревьев.
- git добавить все, что вы хотите включить в свою новую фиксацию.
- Зафиксируйте изменения, повторно используя старое сообщение фиксации. сброс скопировал старую голову в .git/ORIG_HEAD; commit с -c ORIG_HEAD откроет редактор, который изначально содержит сообщение журнала из старого фиксации и позволяет вам его редактировать. Если вам не нужно редактировать сообщение, вы можете использовать опцию -C.
Источник: How to undo last commit(s) in Git?
Во-первых, вы должны вернуться последней фиксации и вернуть все файлы обратно в тамбур по:
git reset --soft HEAD~1
Это не удалит файлы и безопасно ,
Затем, вы можете удалить все файлы, которые добавляются в область размещения по:
git reset
Теперь, если вы запустите git status
, вы можете увидеть, что все файлы unstaged.
После этого вы можете только git add
выбрать файлы.
Спасибо за ваш ответ! Если бы вы ответили на 30 минут раньше, я бы пометил как принято – theEpsilon
Рад, что я мог бы помочь. Ничего ... @theEpsilon –
Возможный дубликат [Как отменить «git add» перед фиксацией?] (Http://stackoverflow.com/questions/348170/how-to-undo-git-add-before-commit) – jjst
@jjst, пожалуйста, см. редактирует, почему мой отличается. Кроме того, моя была после фиксации, а не раньше – theEpsilon
@ theEpsilon Вы единственный пользователь репо? Вам необходимо [отменить «git push»] (http://stackoverflow.com/questions/1270514/undoing-a-git-push). – legends2k