我一直用git存储库构建我的网站一周。到目前为止,我还没有创建任何分支,但我刚发现我的实时网站上存在需要修复的问题。目前,我提交的内容超出了包含我网站的提交,因为我上次将它从我的开发环境推送到上周。所以这就是我所做的:
git checkout -b feature1
来创建一个名为'feature1'的新分支git log
找到与最后一次实时推送/更新相对应的提交的哈希号(afd6)。git checkout afd6
此时我希望我的工作空间只包含我上周提交的文件和修订版。但是,我的工作仍包含今天的所有文件和变体。我在这里错过了一步吗?我假设此操作应该删除了早期提交中不存在的所有跟踪文件,并还原了今天更改的所有文件。
编辑========================
我刚做git clean -f -d
但没有改变
编辑=======================
git status说:
HEAD在afd620b分离 无需提交,工作目录清理
编辑=========================
实际上,我假设文件没有改变是错误的,因为我查看了每个文件的更改日期。我希望这些数据在结账后改为“上周”。在关闭检查后,我看到文件确实包含上周的代码,即使修改数据仍然显示“今天”。有人可以验证操作系统是否认为git checkout
是文件修改?
答案 0 :(得分:2)
来自Git FAQ
“Git将当前时间设置为它修改的每个文件的时间戳, 但只有那些。“
所以你看到的正是那些返回到先前状态的文件(基于你提供的提交)具有'now'时间戳。这样做的Git允许构建工具识别已更改的文件 - 刚刚结账时更改的文件。