git - 为什么 git reset 不起作用?

标签 git git-reset

这太有问题了,我只是 git pull 一些东西然后它说有本地更改....我什么也没改变...我尝试了重设但它没有用...有人帮忙吗?

MacBook-Pro$ git reset --hard
HEAD is now at b89fcff the latest code in AWS to identify all difference and keep track
MacBook-Pro$ git checkout dev1.1
error: Your local changes to the following files would be overwritten by checkout:
    OUTPUT_RESULTS_DIR/equity.csv
Please commit your changes or stash them before you switch branches.
Aborting

最佳答案

执行 git reset --hard 只会影响那些 Git 知道的文件;那些当前被 Git 跟踪的。

当您将 git status 的输出作为引用时,git reset --hard 影响的只是那些 Git 检测到修改的文件或不上演。未跟踪部分中列出的文件,因此不“被 Git 识别”,不受影响。

所以在您的情况下,您有一个未跟踪的文件 OUTPUT_RESULTS_DIR/equity.csv。执行 git reset --hard 不会影响它,所以它保持原样。但是,您尝试 check out 的分支 dev1.1 显然包含该文件。因此,在这里,Git 将通过阻止您 checkout 来保护您免于意外丢失本地文件的内容。

此时,您可以重命名该文件,这样您仍然可以使用它,但在 checkout 其他分支时不会造成冲突。您还可以使用 git checkout dev1.1 --force 强制 Git 检查分支,忽略任何冲突。但请注意,此操作无法撤消,因此请谨慎操作。

关于git - 为什么 git reset 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39820390/

相关文章:

git - 仅使用 pull 请求回滚 master 分支(不重置,不直接推送到 master 等)

git - 在没有git的情况下将git存储库与服务器同步

git - 如何处理 git 中的源代码和生成的代码以进行部署?

git - 如何让git pull 所有分支的更改

git: 你的分支和 'origin/somebranch' 有分歧 - 如何丢弃本地提交

git checkout -f master VS git reset

git - 检查分支和子模块

git - 是否可以完全删除 Git 分支?

git - 转到上一个提交,进行更改并作为新头提交

git - 所有 Git 重置模式之间到底有什么区别?