Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从git恢复commit init?_Git - Fatal编程技术网

如何从git恢复commit init?

如何从git恢复commit init?,git,Git,我有一个文件夹,我使用“git init”,然后,我使用“git add.”将所有文件添加到git中。之后,我使用“git commit-m”initial setup“”。现在,我做了一些事情,我做错了,我想回到“git commit-m”初始设置的状态,我能做什么?谢谢 我可以这样解释 My Files: ABC ---> git add . My Files: ABC ---> git commit -m "initial setup" My Files: CDE ---&

我有一个文件夹,我使用“git init”,然后,我使用“git add.”将所有文件添加到git中。之后,我使用“git commit-m”initial setup“”。现在,我做了一些事情,我做错了,我想回到“git commit-m”初始设置的状态,我能做什么?谢谢

我可以这样解释

My Files: ABC
---> git add .

My Files: ABC
---> git commit -m "initial setup"

My Files: CDE
--->

我想回滚到“My Files:ABC”

最简单的方法是删除保存存储库状态的
.git
文件夹,然后再次执行
git init
git add


Update:要回滚对工作副本文件的更改,只需执行
git checkout
,这将从存储库中获取最新的提交版本。

最简单的方法是删除保持存储库状态的
.git
文件夹,然后再次执行
git init
git add


更新:要回滚对工作副本文件的更改,只需执行
git checkout
,它将从存储库中获取最新的提交版本。

据我所知:您从文件夹开始,其中包含文件A、B、C。在此文件夹中,您运行了命令

git init
git add .
git commit -m 'initial setup'
然后对文件A、B、C进行了更改,现在要撤消这些更改吗?在这种情况下,只需运行

git checkout *
或者我认为这也有效:

git checkout .

它将撤消您对git正在跟踪的文件所做的任何未提交的更改。

据我所知:您从文件夹开始,其中包含文件A、B、C。在此文件夹中,您运行了命令

git init
git add .
git commit -m 'initial setup'
然后对文件A、B、C进行了更改,现在要撤消这些更改吗?在这种情况下,只需运行

git checkout *
或者我认为这也有效:

git checkout .
它将撤消您对git正在跟踪的文件所做的任何未提交的更改。

另一种方法:

  • 获取要恢复到的提交的sha(一种简单的方法是在命令行中运行
    git log--oneline
    ,这将为您提供简短的sha和提交消息的第一行)
  • 使用此sha值运行git reset--hard
  • 另一种方式:

  • 获取要恢复到的提交的sha(一种简单的方法是在命令行中运行
    git log--oneline
    ,这将为您提供简短的sha和提交消息的第一行)
  • 使用此sha值运行git reset--hard

  • 用户MacBook:szecau User$git checkout M app/views/users/index.html.erb M app/views/users/new.html.erb M config/routes.rb M db/development.sqlite3 M db/schema.rb M log/development.log我运行了这个命令,但是我得到了这个命令,但是没有回滚。应该是
    git checkout*
    ,我忘了你必须指定路径。抱歉,它仍然不起作用ng,对此没有任何想法:错误:pathspec“lib”与git已知的任何文件都不匹配。错误:pathspec“tmp”与git已知的任何文件都不匹配。错误:pathspec“vendor”与任何文件都不匹配git所知。您是否确实检查了文件上的更改是否已反转?
    git
    只是警告未进行版本控制的文件的路径。如果它确实不起作用,您可以明确指定仅要还原的文件的路径(通常的方法)是的,我可以运行git reset--hard HEAD…它显示:HEAD现在在3c331b8 initUser MacBook:szecau User$git checkout M app/views/users/index.html.erb M app/views/users/new.html.erb M config/routes.rb M db/development.sqlite3 M db/schema.rb M log/development.log我运行这个命令,但是我得到了这个,但没有回滚。应该是
    git checkout*
    ,我忘记了您必须指定路径。抱歉,它仍然不起作用,对此没有任何想法:错误:pathspec“lib”与git已知的任何文件都不匹配。错误:pathspec“tmp”与git已知的任何文件都不匹配。错误:pathspec“vendor”与任何文件都不匹配git所知。您是否确实检查了文件上的更改是否已反转?
    git
    只是警告未进行版本控制的文件的路径。如果它确实不起作用,您可以明确指定仅要还原的文件的路径(通常的方法),或者我想您可以运行git reset--hard HEAD。是的,我可以运行git reset--hard HEAD…它显示:HEAD现在在3c331b8 init