Git技术问题:未提交变更时如何切换到历史提交版本?
Git Stash 完全适用你的场景
Git Stash 就是干这个的:它专门用来临时保存你当前工作区和暂存区的未提交变更,让工作区回到干净状态,这样你就能顺利切换到任意历史提交版本,不会触发冲突提示。
具体操作步骤:
- 保存当前变更:
执行git stash即可快速保存;如果怕之后分不清stash内容,可以加备注:git stash save "正在开发XX功能的临时变更" - 切换到历史提交:
用git checkout <提交哈希值>切换到目标历史版本,此时工作区是干净的,可正常操作 - 切回原分支/HEAD:
执行git checkout <你的原分支名>(比如git checkout main)回到原来的工作分支 - 恢复之前的变更:
用git stash pop会把最近一次保存的变更恢复到工作区,同时自动删除该stash记录;如果想保留stash记录,就用git stash apply,之后手动用git stash drop删除指定的stash
- 保存当前变更:
关于变更完整性:
恢复后,你之前工作区未完成的代码、暂存区已add的变更都会完整还原,继续开发后提交,最终的提交会包含所有这些内容,完全不会丢失。额外提示:如果保存了多个stash,可以用
git stash list查看所有记录,用git stash apply stash@{n}(n是列表里的序号,从0开始)恢复指定的stash。
内容的提问来源于stack exchange,提问作者gkeenley
相关产品推荐
相关产品推荐

