Как вернуть все локальные изменения в проекте, управляемом Git, в предыдущее состояние?

Я все еще использую psexec, даже на win 10. Замените psexec.exe в папке win32 Windows 10 с более старой версией для работы -> Я использую версию 2.11.0.0. Версия Windows 10, которую я использовал, будет запускать только файлы .bat в качестве фонового / скрытого процесса на удаленном компьютере.

Добавление раздела реестра сверху на удаленный компьютер также помогает:

   reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
1760
задан shekhar 8 October 2015 в 06:28
поделиться

3 ответа

Если вы хотите отменить изменения, внесенные в вашу рабочую копию, сделайте следующее:

git checkout .

Если вы хотите отменить изменения, внесенные в индекс (то есть, которые вы добавили), сделайте это. Предупреждение: это приведет к сбросу всех ваших неотслеживаемых коммитов в мастер! :

git reset

Если вы хотите отменить зафиксированное изменение, сделайте следующее:

git revert <commit 1> <commit 2>

Если вы хотите удалить неотслеживаемые файлы (например, новые файлы, сгенерированные файлы):

git clean -f

Или неотслеживаемые каталоги (например, новые или автоматически сгенерированные каталоги):

git clean -fd
3235
ответ дан 22 November 2019 в 20:06
поделиться

Примечание. Вы также можете запустить

git clean -fd

, поскольку

git reset --hard

, а не будет удалять неотслеживаемые файлы, тогда как git-clean удалит все файлы из отслеживаемого корня. каталог, который не находится под отслеживанием git. ВНИМАНИЕ - БУДЬТЕ ОСТОРОЖНЫ! Полезно сначала запустить пробный прогон с помощью git-clean, чтобы увидеть, что он удалит.

Это также особенно полезно, когда вы получаете сообщение об ошибке

~"performing this command will cause an un-tracked file to be overwritten"

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

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

376
ответ дан 22 November 2019 в 20:06
поделиться

Загляните в git-reflog. В нем будут перечислены все состояния, которые он запомнил (по умолчанию 30 дней), и вы можете просто проверить то, которое хотите. Например:

$ git init > /dev/null
$ touch a
$ git add .
$ git commit -m"Add file a" > /dev/null
$ echo 'foo' >> a
$ git commit -a -m"Append foo to a" > /dev/null
$ for i in b c d e; do echo $i >>a; git commit -a -m"Append $i to a" ;done > /dev/null
$ git reset --hard HEAD^^ > /dev/null
$ cat a
foo
b
c
$ git reflog
145c322 HEAD@{0}: HEAD^^: updating HEAD
ae7c2b3 HEAD@{1}: commit: Append e to a
fdf2c5e HEAD@{2}: commit: Append d to a
145c322 HEAD@{3}: commit: Append c to a
363e22a HEAD@{4}: commit: Append b to a
fa26c43 HEAD@{5}: commit: Append foo to a
0a392a5 HEAD@{6}: commit (initial): Add file a
$ git reset --hard HEAD@{2}
HEAD is now at fdf2c5e Append d to a
$ cat a
foo
b
c
d
49
ответ дан 22 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: