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

2024-02-26

我之前已经能够通过 SourceTree 通过执行“Discard”函数来撤消更改,该函数在幕后会生成以下命令:

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

为什么它仍然被列为未暂存的更改?

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

update

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")

Update 2还尝试过:

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

,这些都不能解决我的问题

更新 3 - 又近了一大步:

结果当我结帐时,.csproj 确实恢复到正确的版本,but签出的版本使用不同的换行编码。签入版本有 CR-LF (0D-0A) 用于换行,而签出版本只有 LF (0A)。因此 git 相信文件的每一行都是不同的。为什么这个?

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

summary我从未找到该问题的解决方案,但我通过签入文件“解决”了它。我原来的问题不包含 SourceTree 确实发出了正确的命令来回滚我想要的信息,因此这里的大多数答案都解决了这个问题。这real问题仍然不清楚,但我的主要理论是它与 CR/LF 相关。


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

git checkout -- file_name

git reset HEAD不删除本地更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么“git reset HEAD”不会撤消我未提交的、未暂存的更改? 的相关文章

  • Git合并策略:空格使默认显示不冲突并带来意想不到的结果

    经过多次试验 我得到了这个简单的测试用例场景 a gt b gt c master gt d gt b gt e branch Where b 是樱桃精选b e is a merge from master b 之后完成c and c对相同
  • 将 git dcommits 切换到 svn 分支

    I had master dcommit到 和rebase来自 颠覆trunk 我创建了一个中间 Subversion 分支tc 合并来自 2 个不同分支的更改 使用 git branch master git svn branch tc
  • 测量大型源树中的“接近度”

    作为我之前提出的问题的一部分找到两个来源之间的最佳匹配 https stackoverflow com questions 13898659 finding what git commit some code spawned from 其中
  • Xcode - 使用 SSH 身份验证添加存储库时出现身份验证失败错误

    我正在尝试通过 Xcode gt 设置 gt 帐户添加存储库 但我被困在正确的地址上 我们的存储库地址非常简单 my domain com port project name 通过 SSH 密钥进行身份验证 有人可以帮助我了解这里发生了什么
  • 如何使用和理解wso2 git仓库?

    我刚刚开始对wso2感兴趣 我正在寻找移动设备管理解决方案 所以我测试了 wso2 EMM 但我发现了一些限制 我想知道是否可以自己实现 我的问题是我完全迷失在 wso2 git 存储库中 有没有我错过的指导书或逻辑 如果有人帮助我解决这个
  • git 忽略行结尾

    我知道已经有人问过类似的问题 但我仍然无法让它发挥作用 我的项目在使用不同操作系统的人之间共享 而我使用的是 OSX 另外 并不是每个人都使用 git 有时我最终不得不提交其他人的更改 有时 git 会突然说有待处理的更改 查看文件 它们看
  • 如何使用 vim 作为“git log”编辑器?

    当我跑步时git log 编辑器到底是什么git log正在使用 Also 无论如何我可以使用吗vim作为我的默认编辑器git log 如果我想搜索 git 日志 最好的方法是什么 现在我正在做类似的事情 git log grep bla
  • GIT 中的 Fastlane 应用程序文件?如何检索当前的 apple_id?

    我为我的 XCode 项目设置了 Fastlane 来实现构建自动化 至少 Fastfile 包含构建选项 应该位于 GIT 中 但我也很高兴 Appfile 团队标识符 也位于 GIT 中 主要问题 Appfile 应该包含我的 appl
  • Git 合并删除文件

    这是第二次发生这种情况 当我进行合并时 我后来意识到正在合并的分支中的一些文件不再位于正在合并的分支中 最新的例子是我们有一个功能分支 我一直在合并主开发分支中的更改 合并后我们丢失了很多文件 并且它们现在不存在于功能分支中 为什么会出现这
  • 禁止 Gerrit 推送到 refs/for/master

    我已经更新了所有项目昨天获得访问权限 人们说他们今天早上无法将更改推送到存储库 当我恢复访问权限后 他们仍然无法将更改推送到存储库 只能clone工作正常 在将更改推送到远程存储库时 它表示 remote rejected HEAD gt
  • 在 Windows 上从源代码构建 PhantomJS-2

    我正在尝试基于这些在 Windows 8 1 x64 上从源代码构建 PhantomJS 2 的开发版本指示 https github com ariya phantomjs wiki PhantomJS 2 但是我收到以下错误 mingw
  • Git 会删除空文件夹吗? [复制]

    这个问题在这里已经有答案了 我已提交一个项目并将其推送到我的 GitHub 帐户 该项目包含以下部分文件结构 server conf some files java lib java 和 lib 文件夹为空 从 GitHub 下载我的项目时
  • Django 和 VirtualEnv 开发/部署最佳实践

    只是好奇人们如何结合 virtualenv 部署 Django 项目 更具体地说 如何使生产虚拟环境与开发计算机正确同步 我使用 git 进行 scm 但 git 存储库中没有 virtualenv 我应该这样做 还是最好使用 pip fr
  • “git merge --squash”的正确用例是什么?

    有些人喜欢git merge squash由于以下原因 压缩到单个提交使您有机会清理混乱的 WIP 提交 并为您要合并的更改提供良好的理由 https coderwall com p qkrmjq git merge squash http
  • 在功能分支上运行测试

    我有一个构建配置 其中包含连接到 git 分支的测试 VCS 根dev 3 个构建步骤和 1 个触发器 这些是我的构建步骤 构建测试 运行测试 构建和部署 我想为分支运行所有这些构建步骤dev但只有其中两个 构建和运行测试 用于分支匹配fe
  • Windows 上的 git 忽略文件名大小写更改 [重复]

    这个问题在这里已经有答案了 我有一个reactjs应用程序 我正在将所有文件名标准化为小写以符合Nodejs 最佳实践 https devcenter heroku com articles node best practices stic
  • 如何将更改提交到另一个预先存在的分支

    我刚刚对一个分支进行了更改 如何将更改提交到另一个分支 我正在尝试使用 git checkout the commmit to the changed branch b the other branch 但是 我认为这不是正确的做法 因为在
  • 使用 SourceTree 克隆存储库

    有人可以给我一个简单的使用 SourceTree 克隆存储库的快速演练吗 在书签中 我单击克隆存储库 对于源路径 我粘贴如下所示的 URL 电子邮件受保护 cdn cgi l email protection 客户端 应用程序名称 ios
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • 如何在没有本地存储库的情况下在远程运行 git 命令

    我有一个名为 git export 的脚本 它可以帮助我导出远程存储库 它是这样运行的 git export http host com git repo lt t tag or b branch or c commit gt local

随机推荐

  • vs code 终端每次都会更改为 powershell [重复]

    这个问题在这里已经有答案了 在 Vs code 更新 1 60 0 后 终端打开 powershell 但默认保持不变 git bash 如果我创建新终端 那么它会打开 git bash 当我启动应用程序时 它看起来像 然后我必须创建新的
  • Python初始化

    我有这个代码 def init self a b c d self a a self b b etc 我正在考虑将其替换为 def init self a b c d args locals for key in args self dic
  • ASP .NET MVC5 中的 CORS

    我有一个 MVC 项目 其中有几个想要公开跨域的 JSON 控制器方法 不是整个网站 只是这两种方法 我基本上想要这篇文章中针对 cors 所说的确切内容 http enable cors org server aspnet html ht
  • 过滤 fiddler 仅捕获特定域的请求

    我不确定如何修改 CustomRules js 文件以仅显示特定域的请求 有谁知道如何做到这一点 这很容易做到 在过滤器选项卡上 单击 仅在过滤器包含时显示 然后键入您的域
  • 如何使用 Enthought python (Canopy) 安装 CVXOPT

    在开始之前 让我为这篇文章添加替代标题 如何使用 Intel MKL 编译 CVXOPT 如何更改 CVXOPT 中的 init py 以使用 Intel MKL 进行编译 让我解释一下这个问题 我正在尝试使用 Enthought pyth
  • JUnit4 和 JUnit5 测试未在 IntelliJ 中运行

    我试图在 IntelliJ IDEA 2017 1 5 的同一个项目中使用 JUnit4 和 JUnit5 测试 到目前为止 所有测试都基于 JUnit4 我添加了jupiter platform and vintage对我的 pom xm
  • clang++ 和 O2 的未定义引用

    我正在一个项目上尝试 CLang 3 4 和 libc 但在发布模式下出现奇怪的链接错误 home wichtounet dev eddic src ast Operator cpp 17 error undefined reference
  • 如何调整规范模式来评估对象的组合?

    我知道规范模式描述了如何使用类的层次结构来实现ISpecification
  • Xcode 并排代码比较选项在哪里?

    从 Xcode 13 开始 代码比较默认不再是并排差异 一定还有办法做到这一点 我正在努力寻找选择 点击Code Review 屏幕截图上的蓝色按钮 一个箭头指向左侧 另一个箭头指向右侧 或在View Menu 然后 在第二个图标上 选择S
  • 关闭 Twitter Bootstrap Navbar 过渡动画

    就像http twitter github com bootstrap http twitter github com bootstrap 我现在工作的网站是响应式的 我想删除过渡动画 当我单击折叠的导航栏菜单按钮时 上图是我所问问题的截图
  • 如何使用 IIS 为 Amazon EC2 服务器启用 FTP 被动模式

    我最初在使用 pagelime 时遇到了问题 它要求用户使用被动模式并且不支持主动模式 让主动模式工作起来非常简单 但让被动工作模式需要付出更多的努力 我正在使用带有 IIS 的 Amazon EC2 服务器以及 FTP 站点 以下链接最终
  • 使用Composer的开发/生产切换时如何正确部署?

    Composer 可以选择仅在开发时加载多个依赖项 因此这些工具不会安装在生产环境中 在实时服务器上 理论上 这对于仅在开发中有意义的脚本非常方便 例如测试 假数据工具 调试器等 解决的方法是添加一个额外的require dev使用开发中所
  • 在循环中连接 PyQt4 中的槽和信号

    我尝试使用 PyQt4 构建一个计算器 但从按钮连接 clicked 信号无法按预期工作 我为 for 循环内的数字创建按钮 然后尝试连接它们 def init self for i in range 0 10 self numberBut
  • 类似于 C 中的宏的功能

    我试图理解像宏这样的函数的概念 但是有几点让我困惑 例如说我们有 define Max a b a gt b a b 我这样称呼它 int i Max 4 5 这将评估相当于的条件表达式a gt b 如果是则a 否则b 但我对 Max 函数
  • 在 JavaFX 中安全地关闭/删除 ImageView 文件

    我有一个 JavaFX 应用程序 它显示 VBox 中某个文件夹中的所有图像 VBox 的构建如下 try DirectoryStream
  • Android 应用程序谷歌地图显示灰色瓷砖而不是地图!

    我在这里完美地遵循了本指南 并再次浏览了一遍 但是当我在 google avd 上运行该程序时 页面加载 但只出现灰色图块 并且没有显示应有的地图 有人有什么想法吗 Thanks 几天前我遇到了同样的问题 并发现与 APK 签名相关的某些内
  • 编写一个 python 脚本,递归地遍历页面上的链接

    我正在为我的学校做一个项目 我想在其中比较诈骗邮件 我找到了这个网站 http www 419scam org emails http www 419scam org emails 现在我想做的是将每个骗局保存在单独的文档中 然后我可以分析
  • 将字符串数组传递给函数 C

    我目前对如何将字符串数组传递给函数感到困惑 我创建了一个一维数组 我所做的方法有效 但似乎多余 我认为有更好的方法来做到这一点 但我不确定如何做 我正在尝试找到一种方法 可以将所有 4 个元素一次传递给函数 这是我的代码示例 include
  • 如何以编程方式获取驱动程序的驱动程序密钥?

    我正在尝试以编程方式确定驱动程序密钥 我知道如何手动执行此操作 在我的例子中是 设备管理器 gt 显示适配器 gt 显示适配器名称 gt 详细信息 gt 在属性下选择驱动程序密钥 我如何以编程方式执行此操作 我可以通过命令行上的 wmic
  • 为什么“git reset HEAD”不会撤消我未提交的、未暂存的更改?

    我之前已经能够通过 SourceTree 通过执行 Discard 函数来撤消更改 该函数在幕后会生成以下命令 git c diff mnemonicprefix false c core quotepath false reset q H