我想查看以前版本的代码。并选择使用git checkout [commit]
命令将工作区回滚到目标版本。
我尝试了git checkout [commit]
和git checkout [commit] .
。无论是否有拖尾点,工作区都可以回滚。
那么它们之间的区别是什么?
答案 0 :(得分:3)
差异很简单,也是git如何思考的必要条件。
git branch
* master
git checkout [commit]
git branch
* (no branch)
git status
<no changes>
在这里,你要求git根据[commit]切换到一个未命名的分支。它就这样做了,你有一个干净的工作目录,可以为你的分支命名。 git checkout master
会带你回家。
git branch
* master
git checkout [commit] -- .
git branch
* master
git status
<lots of changes>
在这里你要求git提取[commit]的内容并将它们全部溅到你的工作目录中,所有这些都准备好你可以随意使用这些文件了。 &#39;的 git reset --hard HEAD; git clean -f -d -x
强>&#39;会带你回家。