我想学习git
和
使用git init
并添加名为context.txt的文件
git add context.txt
和
git commit -m "add content",
然后我修改它,然后再次执行
git commit -m "modify content"
我希望恢复以前的内容,
所以执行git log
显示
commit e407bca38f2d609f073516624222d613b7072f71作者:wyxz125 日期:星期三10月22日22:21:09 2014 +0800
add context
和git checkout "e407bca"
但是内容文件没有恢复以前的版本......它仍然是相同的。,
所以我该怎么办?事先感谢您的帮助
答案 0 :(得分:0)
问题在于第二次提交"修改内容"你没有向索引添加任何内容并且没有执行提交(你使用git log
确认了这一点,你只有一个条目)。这就是工作目录保持不变的原因,即使在结帐时也是如此。
您应该执行另一个git add content.txt
或使用git commit -a -m "modify content"
。
答案 1 :(得分:0)
在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 commit -a会在提交之前自动暂存所有已跟踪,已修改的文件 如果您认为工作流的git add阶段太麻烦,Git允许您使用-a选项跳过该部分。这基本上告诉Git在任何"跟踪"的文件上运行git add。 - 也就是说,您上次提交并且已被修改的任何文件。这允许您根据需要执行更多Subversion样式工作流,只需编辑文件,然后在要对已更改的所有内容进行快照时运行git commit -a。你仍然需要运行git add来开始跟踪新文件,就像Subversion一样。