Git查看某个历史版本再返回工作状态
在用Git工作时,可能会遇到这样一种情况:想查看历史版本中的某个文件,或整体切换到某个历史版本,然后再切换回你当前的工作状态。甚至,需要在这两个版本间多次切换。
我之前使用的方式是:
#commit-id指的是版本hash值
git checkout <commit-id>
#也可以通过以下命令完成
git switch --detach <commit-id>
这里出现一个问题就是detached HEAD,影响不大。但做的任何修改都不会与分支关联,需要小心处理。并且,如需要来回多次切换或在多个历史版本间来回切换,这样的操作方式就不是特别方便。
刚开始学习Git是,我甚至是通过reset回退到某个历史版本。如果查看某个历史版本的文件,甚至通过restore进行恢复。但我认为这些都不是最佳的工作方式,因为我之前忽略了一点,Git建立分支的开销是非常小的,涉及到类似问题,建立分支会更加安全和方便。
因此,我个人认为最佳的的操作方式是给历史版本建立一个临时分支,这样你可以在这个新分支上自由查看和测试,而不会影响到你的主分支,完成后可以随时删除分支。
#方式1
# 创建一个新分支,从指定版本开始,start-point可以是commit-id或tag。
git branch <new-branch-name> <start-point>
git switch <new-branch-name>
#方式2
git switch -c <new-branch-name> <start-point>
当然,可能有更好的方式,欢迎大家示教。