dan*_*jar 18 git working-directory
为了追踪我在哪个版本中破坏了我的软件中的一个功能,我需要查看我的存储库的旧版本.我只想将工作目录设置为较旧的提交,使用代码,然后丢弃更改,然后尝试另一次提交.
我不想改变提交的任何内容,既不删除也不创建提交.我试过使用git reset
但是之后再没有显示更新的提交.所以我再次下载了存储库,因为我不知道如何还原它.
Von*_*onC 15
简单git checkout old-sha1
可以是一个开始,但这种任务的真正命令是:
通过二进制搜索查找引入错误的更改
如果你有一个脚本能够测试你的工作树是否"工作",你可以在之前的提交中执行该脚本git bisect
,找到第一个破坏你的测试的提交.
请注意,GitHub for Windows尚不支持此命令:您必须打开shell.
A git checkout
会让你处于一个独立的HEAD,这没关系,因为你不会做任何修改.
要回到原来,请查看分支机构:
git checkout master
Run Code Online (Sandbox Code Playgroud)
请参阅" 为什么git脱掉我的头? ".
您可以使用以下命令将另一个分支中的代码签出到索引:
git checkout my-other-branch .
Run Code Online (Sandbox Code Playgroud)
点是一个路径说明符,表示您要为整个存储库执行此操作.您同样可以仅指定特定文件夹.从技术上讲,您可以为my-other-branch
参数指定任何"tree-ish"说明符,例如标记,提交哈希HEAD~1
等等,如果您希望将这些更改取消暂存,则可以执行以下操作:
git reset HEAD
Run Code Online (Sandbox Code Playgroud)
假设您开始处于干净状态,您现在可以使您的工作目录处于相同的状态my-other-branch
.