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

Я удалил несколько файлов.

Я еще НЕ совершал.

Я хочу сбросить рабочее пространство, чтобы восстановить файлы.

Я выполнил git checkout. .

Но удаленные файлы все еще отсутствуют.

И git status показывает:

  # На главном сервере # Изменения, которые необходимо зафиксировать: # (используйте "git reset HEAD .  .. "для отмены постановки) ## удалено: cc.properties # удалено: store/README # удалено: store/cc.properties #  

Почему не git checkout. сбросить рабочее пространство на HEAD ?


В выводе указано, что вам нужно сделать. git reset HEAD cc.properties и т. д.

Это отключит операцию rm. После этого повторный запуск git status сообщит вам, что вам нужно выполнить git checkout - cc.properties , чтобы вернуть файл.

Обновление: это есть в моем файле конфигурации

  $ git config alias.unstagereset HEAD  

, который я обычно использую, чтобы отключить материал.


Вы поставили удаление, поэтому вам нужно сделать :

  git checkout HEAD cc.properties store/README store/cc.properties  

git checkout. извлекается только из индекса, где удаление уже было выполнено.


Вы поставили удаление, поэтому вам нужно сделать :

  git checkout HEAD cc.properties store/README store/cc.properties  

git checkout. извлекается только из индекса, где удаление уже было выполнено.


Просто сделайте git checkout path/to/file-I-want-to-give-back.txt


Просто выполните git checkout path/to/file-I-want-to-return-back. txt


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

  git ls-files -z -d |  xargs -0 git checkout -  

Чтобы восстановить все поэтапные удаления сразу, автоматически, без указания каждого пути:

  git status |  grep 'удалено:' |  awk '{print $ 2}' |  xargs git checkout -  


Чтобы восстановить все неустановленные удаляет сразу, автоматически, без указания каждого пути:

  git ls-files -z -d |  xargs -0 git checkout -  

Чтобы восстановить все поэтапные удаления сразу, автоматически, без указания каждого пути:

  git status |  grep 'удалено:' |  awk '{print $ 2}' |  xargs git checkout -  

Поскольку вы выполняете git checkout. , похоже, вы пытаетесь восстановить ветку до последнего состояния фиксации.

Вы можете добиться этого с помощью git reset HEAD --hard

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


Поскольку вы выполняете git checkout. , похоже, что вы пытаетесь восстановить свою ветку до последнего состояния фиксации.

Вы можете добиться этого с помощью git reset HEAD --hard

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


если вы использовали

  git rm filename  

для удаления файла, то

  git checkout path/to/filename  

не работает, поэтому в этом случае

  git  checkout HEAD ^ path/to/filename  

должен работать


если вы использовали

  git rm filename  

для удаления файла, то

   git checkout path/to/filename  

не работает, поэтому в этом случае

  git checkout  HEAD ^ путь/к/файлу  

должен работать


Вот команда, которая помогла мне на моем Mac. Я попробовал несколько других решений, но они не помогли мне.

Версия Git на OSX Mavericks

  mac-pro: основная chris $ git версия git версия 1.8.5. 2 (Apple Git-48)  

Command

  git checkout HEAD - путь /to/file/file.cc  


Вот команда, которая помогла мне мой макинтош. Я попробовал несколько других решений, но они не помогли мне.

Версия Git на OSX Mavericks

  mac-pro: main chris $ git versiongit версия 1.8.5.2 (Apple Git-48)  

Command

  git checkout HEAD - путь/к/файлу/file.cc  

Если вы хотите восстановить все файлы сразу

Не забудьте использовать точку, потому что она сообщает git, что нужно захватить все файлы.

Эта команда сбросит заголовок и отключит все изменения:

  $ git reset HEAD.   

Затем запустите это, чтобы восстановить все файлы:

  $ git checkout.  

Затем, выполнив git status, вы получите:

  $ git statusOn branch masterВаша ветка обновлена ​​с 'origin/master'. код> 


Если вы хотите восстановить все файлы сразу

Не забудьте использовать точку, потому что она сообщает git, что нужно захватить все файлы.

Эта команда сбросит заголовок и отключит все изменения:

  $ git reset HEAD.   

Затем запустите это, чтобы восстановить все файлы:

  $ git checkout.  

Затем, выполнив git status, вы получите:

  $ git statusOn branch masterВаша ветка обновлена ​​с 'origin/master'.  

  git checkout HEAD - client/src/pp_web/index.cljs   


  git checkout HEAD - client/src/pp_web/index.cljs  

Используйте git ls-files для извлечения удаленных (-d) или измененных (-m) файлы.

  git checkout $ (git ls-files -d)  

см. Как я могу восстановить только измененные файлы при проверке git?


Используйте git ls-files для проверки удаленных (-d) или измененных (-m) файлов.

  git checkout $ (git ls-files -d)  

см. Как я могу восстановить только измененные файлы при проверке git?


Вы можете увидеть это

, которое подходит для случаев, когда вы использовали

  git checkout -.  

перед тем, как что-то зафиксировать.

Вы также можете избавиться от созданные файлы, которые еще не были созданы. И вы их не хотите. С помощью:

  git reset -.  


Вы можете увидеть это

, что подходит для случаев, когда вы использовали

  git checkout -.  

перед тем, как что-то зафиксировать.

Вы также можете избавиться от созданных файлов, которые еще не были созданы. И вы их не хотите. С помощью:

  git reset -.  

Нашел этот пост, когда искал ответы о том, как отменить удаление файла, который был удален в моем рабочем каталоге после слияния из другой ветки. После слияния еще не было зафиксировано ни одного коммита, так как оно было в процессе, я не мог просто добавить его обратно, используя:

  $ git reset  file.cpp  

Мне пришлось сделать еще один шаг в дополнение к сбросу, чтобы вернуть файл:

  $ git checkout - file.cpp  


Нашел это сообщение, когда искал ответы о том, как отменить удаление файла, который был удален в моем рабочем каталоге после слияния из другой ветки. После слияния еще не было зафиксировано ни одного коммита, так как оно было в процессе, я не мог просто добавить его обратно, используя:

  $ git reset  file.cpp  

Мне пришлось сделать еще один шаг в дополнение к сбросу, чтобы вернуть файл:

  $ git checkout - file.cpp  

Если вы не зафиксировали никаких изменений все, что вам нужно сделать, это спрятать эти изменения, и вы вернетесь к последней рабочей фиксации.

  git stashgit stash cleargit clean  


Если вы не зафиксировали никаких изменений, все, что вам нужно сделать, это спрятать эти изменения, и вы вернетесь к последней рабочей фиксации.

  git stashgit stash cleargit clean  

Вот разные случаи в качестве справки, чтобы помочь другим:

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

  $ git checkout -   

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

  $ git ls-files --deleted  

Если удаление было зафиксировано , найдите фиксацию там, где это произошло, затем восстановите файл из этого коммита.

  # найти хеш фиксации, из которого был удален этот файл $ git rev-list -n 1 HEAD -  

Это должно дать вам что-то вроде c46e81aa403ecb8a0f7a323a358068345 , теперь используйте здесь commit #

  $ git checkout  ^ -    

Примерно так: $ git checkout c46e81aa403ecb8a0f7a323a358068345 —

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

  $ git log --diff-filter = D --summary  

Если вы хотите просто отобразить список файлов:

  git log --diff-filter = D --summary |  grep "режим удаления"  


Вот различные примеры в качестве справки, чтобы помочь другим:

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

  $ git checkout -  

Вы можете получить список всех удаленных файлов в рабочем дереве с помощью команды ниже.

  $ git ls-files --deleted  

Если удаление было зафиксировано , найдите фиксацию там, где она произошла, затем восстановите файл из этой фиксации.

  # найдите хеш фиксации, из которого был удален этот файл $ git rev-list -n  1 HEAD -  

Он должен дать вам что-то вроде c46e81aa403ecb8a0f7a323a358068345 , теперь используйте здесь # commit

  $ git checkout  ^ -  

Примерно так: $ git checkout c46e81aa403ecb8a0f7a323a358068345 —

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

  $ git log --diff-filter = D --summary  

Если вы хотите просто отобразить список файлов:

  git log --diff-filter = D --summary |  grep "режим удаления"  

, если вы ищете удаленный каталог.

  git checkout ./pathToDir/*  


если вы ищете удаленный каталог.

  git checkout ./pathToDir/*  

Для меня сработало git checkout {SHA1 фиксации с версией для восстановления} "{путь к файлу для восстановления}"

Для пример git checkout 5a6b3179e58edff9c90326b9a04284b02fd67bd0 "src-ui/views/includes/radar. pug "

(выполняется в ветке, в которую мы хотим поместить файл)

После выполнения этой команды восстановленный файл будет существовать в исходное местоположение (которое необходимо будет создать)


Для меня сработало git checkout {SHA1 фиксации с версией до restore} "{путь к файлу для восстановления}"

Например, git checkout 5a6b3179e58edff9c90326b9a04284b02fd67bd0 "src-ui/views/includes/radar.pug"

(выполняется в ветке, в которую мы хотим поместить файл)

После выполнения этой команды восстановленный файл будет существовать в исходном месте (что будет должны быть созданы)


Если вы установили ToroiseGIT, просто выберите пункт меню «Вернуть …» для всплывающего меню родительской папки.


Если вы установили ToroiseGIT, тогда просто выберите пункт меню «Вернуть …» для всплывающего меню родительской папки.


1. Найдите конкретную фиксацию, к которой вы хотите вернуться, используя:

  git log Эта команда предоставит вам список сделанных вами коммитов.  

2. Вернитесь к этой фиксации, используя:

  git revert   

Теперь у вас локальная ветка будут все файлы в частности


1. Найдите конкретную фиксацию, к которой вы хотите вернуться, используя:

   git log Эта команда предоставит вам список сделанных вами коммитов.  

2. Вернитесь к этому коммиту, используя:

  git revert   

Теперь в вашей локальной ветке будут все файлы, в частности


ВНИМАНИЕ: сначала зафиксируйте любую работу, которую хотите сохранить.

Вы сделали y сбросить рабочее пространство (и восстановить удаленные файлы)

  git checkout ./*  


ВНИМАНИЕ: сначала зафиксируйте любую работу, которую хотите сохранить.

Вы можете сбросить свое рабочее пространство (и восстановить удаленные файлы)

  git checkout ./*  

Более новый git (у меня 2.27.0) более дружелюбен, и фактические команды отображаются во время «git status». Например, если вы удалили файл tf.c, то

  $ git status ... Изменения, не поставленные для фиксации: (используйте "git add/rm  ..  . "для обновления того, что будет зафиксировано) (используйте" git restore  ... ", чтобы отменить изменения в рабочем каталоге) удалено: tf.c  

Вы должны использовать» git восстановить tf. c «, чтобы вернуть его, так как он saz. Больше никакого поиска!


Более новый git (у меня 2.27.0) более дружелюбен, а фактические команды отображаются во время «git status». Например, если вы удалили файл tf.c, тогда

  $ git status ... Изменения, не поставленные для фиксации: (  используйте "git add/rm  ..." для обновления того, что будет зафиксировано) (используйте "git restore  ...", чтобы отменить изменения в рабочем каталоге) удалено: tf.c  

Вы должны использовать «git restore tf.c», чтобы вернуть его, так как он saz. Больше никакого поиска!


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


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


У меня сработало

  git reset HEAD app/ views/data/landingpage.js.erbgit restore app/views/data/landingpage.js.erb  

где файл, который я хотел восстановить, был app/views /data/landingpage.js.erb


У меня сработало

  git reset HEAD app/views/data/landingpage.js.erbgit restore app/views/data/landingpage.js.erb  

где файл, который я хотел восстановить, был app/views/data/landingpage.js.erb


У меня было та же проблема, и ни один из ответов, которые я пробовал, тоже не помог мне. Я использую Intellij, и я проверил новую ветку git checkout -b minimalExample , чтобы создать «минимальный пример» в новой ветке некоторой проблемы, удалив кучу файлов и изменив кучу других участников проекта. К сожалению, несмотря на то, что я не зафиксировал никаких изменений в новой ветке «минимальный пример», когда я снова проверил свою «исходную» ветку, все изменения и удаления из ветки «минимальный пример» произошли в ветке « оригинальная «ветка» тоже (по крайней мере, так оказалось). Согласно git status удаленные файлы просто исчезли из обеих веток..

К счастью, даже несмотря на то, что Intellij предупреждал меня, что «удаление этих файлов может быть не полностью восстановлено», я смог восстановить их (в минимальной ветке примера, из которой они были фактически удалены) по праву — щелкнув проект и выбрав «Локальная история»> «Показать историю» (а затем «Восстановить» на самом последнем элементе истории, который я хотел). После того, как Intellij восстановил файлы в ветке «минимальный пример», я отправил ветку в исходную точку. Затем я переключился обратно на свою «исходную» локальную ветвь и запустил git pull origin minimalExample , чтобы вернуть их тоже в «исходную» ветку.


У меня была такая же проблема, и ни один из ответов, которые я попробовал, у меня тоже не сработал. Я использую Intellij, и я проверил новую ветку git checkout -b minimalExample , чтобы создать «минимальный пример» в новой ветке некоторой проблемы, удалив кучу файлов и изменив кучу других участников проекта. К сожалению, несмотря на то, что я не зафиксировал никаких изменений в новой ветке «минимальный пример», когда я снова проверил свою «исходную» ветку, все изменения и удаления из ветки «минимальный пример» произошли в ветке « оригинальная «ветка» тоже (по крайней мере, так оказалось). Согласно git status , удаленные файлы просто исчезли из обеих веток.

К счастью, даже несмотря на то, что Intellij предупреждал меня, «удаление этих файлов может быть не полностью восстановлено» , Я смог восстановить их (в минимальной ветке примера, из которой они были фактически удалены), щелкнув проект правой кнопкой мыши и выбрав «Локальная история»> «Показать историю» (а затем «Восстановить» для самого последнего элемента истории, который я хотел). После того, как Intellij восстановил файлы в ветке «минимальный пример», я отправил ветку в исходную точку. Затем я вернулся к своей «исходной» локальной ветке и запустил git pull origin minimalExample , чтобы вернуть их обратно и в «исходную» ветку.

Оцените статью
techsly.ru
Добавить комментарий