【发布时间】:2014-10-30 01:24:40
【问题描述】:
我已经看过了: Temporarily switch working copy to a specific Git commit Is it possible to switch between GIT commits? Git switching between commits 不过,我想梳理一个具体的话题:
我目前不在团队中工作,
我使用 Git 将我的项目历史保存在本地(没有 GitHub 或 Bitbucket)并且只有 master 分支,
在项目结束之前,我不会将我的提交推送到工作目录中的 .git 之外。 我的问题很简单:
我怎样才能安全地返回我以前的提交(有点像时间机器)而不考虑破坏现有的树索引?
如何确保在此实验期间在此特定提交之后添加的文件不会出现在工作目录中?
然后我怎样才能安全地返回树的 HEAD 并再次 - 确保在过去(很久以前,而不是这次)特定提交之后删除的文件不会出现在工作目录中?
我问这个问题的原因很简单:我现在正在学习,因此希望不时回来看看(只读) - 过去发生了什么(比如一个月前)。
谢谢。
【问题讨论】:
-
git checkout怎么不能满足你的需求? -
它不会删除工作目录中在此特定提交之后添加的文件,AFAIK
-
@Mike:确实如此。它不会删除 未跟踪的 文件,但如果跟踪的文件在之前的提交中不存在,则会被删除。
-
好的。 - 著名的。 - 我标记为不被跟踪的 .gitignore 、 .idea 、 netbeans 等文件呢? - 没有拖钓,只是提问。
-
@Mike .gitignore 被跟踪。另一个,如果未跟踪,默认情况下不会被触及(或者您可以应用 Chris Martin 的解决方案)
标签: git