如何在git中删除未分级的更改[换行符字符差异]?

时间:2010-11-19 00:27:13

标签: git

这令人沮丧,我根本找不到如何处理这个问题的正确答案。 我正在经历一次变革[但这只是出现此问题的众多场景之一]并且我有大量的文件“已更改但未更新”,但对于换行符没有区别。

git diff -b
没有回来。

现在我只想删除更改并将文件保留在repo中。 我找到了很多“解决方案”:

1 Stashing changes
a)使用--keep-index [这实际上来自SO]

$ git stash save --keep-index
Saved working directory and index state WIP on COM-23: 4a8abc1 COM-23 changed pa
ckage name
HEAD is now at 4a8abc1 COM-23 changed package name

$ git stash drop
Dropped refs/stash@{0} (7d822e3c6bdc310f4a4be90ed937dd0ea97df627)

$ git status
[tons of files marked as changed but not updated]

b)没有--keep-index
与'a'完全相同

2 git reset
a)只是重置

git reset --hard HEAD

与上述相同

b)添加

git add -A
git reset --hard HEAD

与上述相同

3结帐

git checkout

与上述相同,status返回大量未分段文件。

我很确定我做错了什么或只是误解了问题,但我想做的就是摆脱未经修改的变化! 我怎么能这样做?

谢谢, 克里斯蒂安

2 个答案:

答案 0 :(得分:10)

结帐git config [--global] core.autocrlf。最好将其设置为false。更改该值后,您可能仍需要git reset --hard,因为您必须将编辑器换行设置与Git设置同步。

答案 1 :(得分:0)

如果要记录工作目录和索引的当前状态,但想要返回干净的工作目录,请使用git stash。该命令将保存您的本地修改并恢复工作目录以匹配HEAD提交。

这样做。

git stash save --keep-index

如果您想完全删除此更改,请删除存储

git stash drop