为什么git reset不起作用?

时间:2016-10-02 18:44:03

标签: git git-reset

这是有问题的,我只是git拉东西,然后它说有局部变化......我什么都没改变......我尝试重置但是它没有用......有人帮忙吗?

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

3 个答案:

答案 0 :(得分:4)

执行git reset --hard只会影响这些文件,Git知道;那些目前由Git跟踪的人。

当您将git status的输出作为参考时,git reset --hard影响的只是那些Git检测到已分阶段或未分阶段修改的文件。未跟踪部分中列出的文件(因此不为Git所知)不受影响。

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

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

答案 1 :(得分:1)

如果您确定没有您关心的更改,那么没有理由尝试提交或存储(甚至重置)。您应该能够按如下方式强制结帐:

git checkout --force dev1.1

--force选项会导致Git丢弃任何本地更改,而不是失败。请确保这是你想要做的。

答案 2 :(得分:0)

尝试藏匿它可能会起作用。 :

git stash save