寻找类似git add -i的东西,但是要重置

时间:2014-08-11 23:25:42

标签: git

我通过终端在大型项目上使用git。这大部分时间都很有效,但我一直回到一个用例,我似乎找不到合适的解决方案。

添加文件时,我可以使用git add -i并以交互方式选择文件或块。这很棒,我经常使用它。

当我想要删除我对文件所做的更改时,我想使用类似的东西。即git reset -i。但这不存在。我知道我可以使用git reset -- file.ext,但是当文件路径非常长时(想想java包),这会变得非常麻烦。

我通常的工作流程是启动GUI并在那里执行。有没有更好的方法来重置文件?

2 个答案:

答案 0 :(得分:1)

您可以使用git reset -p以交互方式选择应从索引重置的块。它基本上是git add -p的倒数,可以用来从索引中删除单个块。

例如,当您要添加文件example.txt以外的所有行时,可以先使用git add example.txt添加所有更改,然后使用{以交互方式查找要从索引中删除的块。 {1}}。最终会得到相同的结果,就像您在第一时间使用git reset -p example.txt并选择除了那些之外的所有块一样。

答案 1 :(得分:0)

如果您对文件进行了更改(要删除其更改),但尚未提交更改,请尝试使用git reset --hard来恢复您的回购。如果这不起作用,请尝试运行git reset HEAD~并查看是否可以推送极长文件。此外,如果您确实尚未提交要重置的更改,只需尝试git status即可探索所需内容。但话说回来,如果你已经推动了你的更改,那么这个过程会有所不同,我鼓励你使用gitk --all --date-order来探索当前分支之外你需要修改的git引用。此外,如果您进行了尚未设置的更改,请尝试使用git checkout -- .删除它们(但请注意这个,因为可能无法恢复您更改过的文件使用此选项重置它们。)