为什么“ git reset HEAD”不会撤消我未提交的,未暂存的更改?

尼尔佐

我以前可以通过执行“丢弃”功能来撤消SourceTree中的更改,该功能在幕后会产生以下命令:

git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q HEAD -- myproj.csproj 
git -c diff.mnemonicprefix=false -c core.quotepath=false checkout HEAD -- myproj.csproj

突然,这不起作用。我执行了“丢弃”操作,没有错误,请重新冻结视图,但是文件仍被“修改”。然后,我尝试在命令行中执行以下相同结果:

c:\myproject> git reset HEAD

Unstaged changes after reset:
M       myproj.csproj

为什么仍将其列为未分阶段的更改?

我已验证文件确实可写(没有进程持有锁)

更新

git checkout 也不起作用:

C:\myproject>git checkout myproj.csproj

C:\myproject>git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   myproj.csproj
#
no changes added to commit (use "git add" and/or "git commit -a")

更新2还尝试了:

  • git checkout --
  • git checkout -- .
  • git checkout HEAD

,没有一个解决我的问题

更新3-更近一步:

事实证明,当我执行签出操作时,.csproj确实已还原为正确的版本,但是签出的版本使用了不同的换行编码签入版本具有CR-LF(0D-0A)用于换行,而签出版本仅具有LF(0A)。因此,git认为文件在每一行上都是不同的。为什么这个?

更新4:添加了SourceTree发出的git-commands的第二行。我没有注意到第一次,这就是为什么我认为git reset HEAD会做任何事情的原因这并不会改变基本问题仍然与CR / LF相关的事实(我认为)

摘要我从未找到解决该问题的方法,但是我通过检入文件来“解决”它。我最初的问题没有包含SourceTree确实发出了正确的命令以回滚我想要的信息的信息,因此这里的大多数答案都解决了该问题。真正的问题是,目前还不清楚,但我的主要理论是,这是CR / LF有关。

苏珊

如果需要删除本地更改,请运行以下命令

git checkout -- file_name

git reset HEAD 不会删除本地更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么“ git reset HEAD”不会撤消我未提交的,未暂存的更改?

来自分类Dev

为什么git reset后“ git status”不显示我恢复的更改

来自分类Dev

为什么我的git分支未指向最新提交?

来自分类Dev

git reset vs git reset HEAD

来自分类Dev

撤消'git reset <sha>'

来自分类Dev

撤消'git reset <sha>'

来自分类Dev

git reset file和git reset HEAD file有什么区别?

来自分类Dev

git reset --hard后未暂存的文件消失了

来自分类Dev

git 错误:“未为提交暂存更改:”

来自分类Dev

如何撤消`git reset --hard HEAD〜1`?

来自分类Dev

如何撤消`git reset --hard HEAD〜1`?

来自分类Dev

为什么在git reset(--mixed)之前显式调用git reset --soft

来自分类Dev

如何撤消git reset --soft来找回我的更改?

来自分类Dev

未针对提交和未跟踪文件暂存 Git 更改

来自分类Dev

`git reset --hard` 会对我有什么影响?

来自分类Dev

Git rebase 分支,因此提交和未暂存的更改不会被删除或丢失

来自分类Dev

在git reset --hard HEAD @ {1}之后,是否可以恢复未执行的更改?

来自分类Dev

为什么git rebase丢弃我的提交?

来自分类Dev

为什么git rebase丢弃我的提交?

来自分类Dev

撤销多个提交的git reset

来自分类Dev

当我从存储库中运行“ git reset --hard〜1”时,为什么会出现错误“致命:'C:/ Program Files(x86)/ Git'在存储库外部”?

来自分类Dev

为什么git reset commit + git push导致当前分支的尖端落后于远程?

来自分类Dev

为什么在这里使用git reset而不是git merge?

来自分类Dev

git:如何从暂存删除的文件中恢复未提交的更改?

来自分类Dev

更改未暂存以使用 git bash 提交

来自分类Dev

为什么git无法暂存IDE的文件?

来自分类Dev

为什么git无法暂存IDE的文件?

来自分类Dev

git reset --hard HEAD ^后未运行的文件丢失,而无需运行git add-我可以找回它们吗?

来自分类Dev

git reset stash的语义是什么?

Related 相关文章

  1. 1

    为什么“ git reset HEAD”不会撤消我未提交的,未暂存的更改?

  2. 2

    为什么git reset后“ git status”不显示我恢复的更改

  3. 3

    为什么我的git分支未指向最新提交?

  4. 4

    git reset vs git reset HEAD

  5. 5

    撤消'git reset <sha>'

  6. 6

    撤消'git reset <sha>'

  7. 7

    git reset file和git reset HEAD file有什么区别?

  8. 8

    git reset --hard后未暂存的文件消失了

  9. 9

    git 错误:“未为提交暂存更改:”

  10. 10

    如何撤消`git reset --hard HEAD〜1`?

  11. 11

    如何撤消`git reset --hard HEAD〜1`?

  12. 12

    为什么在git reset(--mixed)之前显式调用git reset --soft

  13. 13

    如何撤消git reset --soft来找回我的更改?

  14. 14

    未针对提交和未跟踪文件暂存 Git 更改

  15. 15

    `git reset --hard` 会对我有什么影响?

  16. 16

    Git rebase 分支,因此提交和未暂存的更改不会被删除或丢失

  17. 17

    在git reset --hard HEAD @ {1}之后,是否可以恢复未执行的更改?

  18. 18

    为什么git rebase丢弃我的提交?

  19. 19

    为什么git rebase丢弃我的提交?

  20. 20

    撤销多个提交的git reset

  21. 21

    当我从存储库中运行“ git reset --hard〜1”时,为什么会出现错误“致命:'C:/ Program Files(x86)/ Git'在存储库外部”?

  22. 22

    为什么git reset commit + git push导致当前分支的尖端落后于远程?

  23. 23

    为什么在这里使用git reset而不是git merge?

  24. 24

    git:如何从暂存删除的文件中恢复未提交的更改?

  25. 25

    更改未暂存以使用 git bash 提交

  26. 26

    为什么git无法暂存IDE的文件?

  27. 27

    为什么git无法暂存IDE的文件?

  28. 28

    git reset --hard HEAD ^后未运行的文件丢失,而无需运行git add-我可以找回它们吗?

  29. 29

    git reset stash的语义是什么?

热门标签

归档