这里有新手。 这与操纵git的暂存区域有关。
假设我有一个名为cat.txt的文件。
它的git承诺版本中只有一行。 然后我编辑cat.txt添加了第二行并上演了它。 然后再次编辑,添加第三行并上演了。 我的工作副本和暂存区域引用包含三行。
现在我决定提交只有两行的版本。 如何将暂存区域中的cat.txt恢复为其两行版本? 感谢
答案 0 :(得分:0)
从索引中删除它并仅添加2行:
# remove form index
git rm --cached cat.txt
# add only the 2 desired lines
git add -p
# choose the split method and select the content to add
另一种选择是使用git reset
git reset
此表单将当前分支头重置为
<commit>
并可能 更新索引(将其重置为<commit>
的树)和 工作树取决于<mode>
,它必须是其中之一 以下:的 - 软强>
根本不触摸索引文件或工作树(但重置 头部到
<commit>
,就像所有模式一样。) 这留下了你所有的 已更改的文件&#34;要提交的更改&#34;,因为git status会将其提交。的 - 混合强>
重置索引但不重置工作树(即更改的文件 保留但未标记为提交)并报告尚未提交的内容 更新。这是默认操作。
的 - 硬强>
重置索引和工作树。对跟踪文件的任何更改 自
<commit>
以来的工作树被丢弃。
答案 1 :(得分:0)
如果您的案例真的和您提供的示例一样简单,并且您想继续使用3行版本,那么只需备份cat.txt,将其编辑为仅包含两行,将其添加到索引,然后将工作目录中的cat.txt恢复为3行版本。
但是,我怀疑这个例子就是这样的:只是一个例子,你当前的情况涉及更多的变化,而你正在寻找更通用的&#34; git方式&#34;将索引恢复到以前的状态。不幸的是,这是不可能的:索引只是代码快照的保留区域,它本身没有版本化。
展望未来,我建议您提交增量更改,而不是仅将其添加到索引中。这将为您提供所需的版本控制,并且您可以在推送到存储库之前始终展平这些提交。