git签出未恢复到以前的状态

git签出未恢复到以前的状态,git,Git,我想学git 及 使用git init 并添加一个名为context.txt的文件 git add context.txt 及 然后我修改它,并再次执行 git commit -m "modify content" 我想恢复以前的内容 所以执行git日志 展示 提交e407bca38f2d609f073516624222d613b7072f71作者:wyxz125 日期:星期三10月22日22:21:09 2014+0800 add context 和git签出“e407bca” 但内容文件

我想学git

使用
git init

并添加一个名为context.txt的文件

git add context.txt

然后我修改它,并再次执行

git commit -m "modify content"
我想恢复以前的内容

所以执行
git日志

展示

提交e407bca38f2d609f073516624222d613b7072f71作者:wyxz125 日期:星期三10月22日22:21:09 2014+0800

add context
git签出“e407bca”
但内容文件不是还原以前的版本…它仍然是相同的


那么我能做什么呢?提前感谢您的帮助问题是,在第二次提交“修改内容”时,您没有向索引添加任何内容,并且提交没有执行(您使用
git log
确认了这一点,您只有一个条目)。这就是为什么工作目录保持不变,即使在签出时也是如此。
您应该执行另一个
git add content.txt
或使用
git commit-a-m“modify content”
在git中,您必须先将文件内容添加到暂存区域,然后才能提交它们。如果文件是新的,您可以运行git add以最初将文件添加到暂存区域,但即使文件已经被“跟踪”(即,它在您上次提交时),您仍然需要调用git add以向暂存区域添加新的修改

简而言之,当您希望在下一个提交快照中包含对文件所做的任何更改时,可以在文件上运行git add。未添加的任何更改都将不包括在内-这意味着您可以比大多数其他SCM系统更精确地创建快照

所以在承诺之后,

git add  context.txt --git add to add new modifications to your staging area.
然后

git commit -m "comment"
或者使用快捷方式

git commit -am "comment"
git提交-在提交之前自动将所有跟踪的、修改过的文件转移到后台 如果您认为工作流程中的git添加阶段过于繁琐,git允许您使用-a选项跳过该部分。这基本上告诉Git在任何被“跟踪”的文件上运行Git add,也就是说,在您上一次提交中的任何文件,并且已经被修改。如果您愿意的话,这允许您执行更具Subversion风格的工作流,只需编辑文件,然后在您想要快照所有已更改的内容时运行git commit-a。不过,您仍然需要运行GitAdd来开始跟踪新文件,就像Subversion一样


参考

我相信他是在问如何回到上次提交的状态,而不是对已经存在的oneNo进行补偿。他在问为什么签出没有恢复上次提交,问题是他没有再次提交。等一下。。。他写道他做出了两项承诺。。。你能给我解释清楚吗?如果我弄错了,我应该删除(或修改)我的答案,谢谢advance@4rlekin请看我的最新答案。没有进行第二次提交,因为他没有对提交进行任何更改。好的,谢谢。我只是假设他执行了git add,而这个日志只是一个剪贴簿。如果他没有,那么你的答案显然是正确的。
git commit -am "comment"