说我想从几个提交前检索一个旧版本的文件(filename.html)。我是否正确地认为我需要做
git checkout sha -- filename.html
(其中sha是我想要的提交的哈希值)
但是这会把文件放在我的登台索引中,而不是我的工作目录,对吗?因此,如果我现在运行git commit
我的repo将更新以使旧文件恢复到原位,但我的工作目录仍将具有更新的文件(我不会再这样做了)。
我想我可以做一个git checkout -- filename.html
让两个人同步,但这是最好的方法吗?这个过程看起来很像是一个可以迅速搞乱的过程。是否只有一种方法可以将旧版本的filename.html恢复到我的工作目录中而不会在我的暂存索引中“卡住”?
感谢。
答案 0 :(得分:1)
但是这会把文件放在我的登台索引中,而不是我的工作目录,对吗?
它会将旧版 放在索引和的工作树中。
如果我现在运行git commit我的repo会更新以使旧文件恢复原位,但我的工作目录仍然会有更新的文件
不,它将包含该文件的旧版本。
我想我可以做一个git checkout - filename.html来让两者同步,但这是最好的方法吗?
要返回最新版本,您必须:
git reset HEAD -- filename.html # remove it from the index
git checkout -- filename.html # restore latest
答案 1 :(得分:1)
如果您只是想查看该文件并且不打算提交它,您可以简单地说
git show sha1:filename