我想做的一件好事是将我的工作副本还原到特定版本,进行一些测试,然后将其恢复到我当前主人的头部.在过去,我天真地做了一个"git checkout hash"只是为了失去理智.我已经知道我可以创建一个分支并检查出来,切换回来并删除分支,但感觉就像进行简单检查的步骤太多了.在SVN的说法中,有没有办法快速恢复然后快速回到git中的trunk端?
编辑:我认为我的困惑源于这样一个事实,当我签出一个哈希然后git日志时,我没有看到签出哈希后发生的变化(这是合理的,当你想到它).但接受的答案是正确的; "git checkout branch"将恢复到前一个分支的头部.
bdo*_*lan 28
假设你已经在一个分支上(你应该总是想要保留更改),你可以这样做
git checkout <revision to check out>
Run Code Online (Sandbox Code Playgroud)
这将使您脱离正在进行的主题分支(无分支),其中工作副本直接引用提交ID而不是正常的分支名称.
然后回去,简单地说:
git checkout <old branch name>
Run Code Online (Sandbox Code Playgroud)
一个有用的思考方式是:git checkout永远不会改变分支; 它只是改变你的工作副本当前正在查看的内容(即HEAD),它可能是一个分支(在这种情况下提交将更新分支)或随机提交哈希.
因此,只要您想要保留的更改位于分支上,您就不必担心git checkout会丢失它们.
您可以在要签出的特定提交中创建分支(从手册页)
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
Run Code Online (Sandbox Code Playgroud)
所以填写<start-point>你希望你的新分支<branchname>开始的SHA1 ,你不会让你的'头'脱离扩展分支.
你可能还想做其他事情来保持你工作的文件处于你想要的状态....
| 归档时间: |
|
| 查看次数: |
15746 次 |
| 最近记录: |