如何告诉git没有任何合并?

时间:2015-06-24 18:15:47

标签: git permissions git-merge

我从*.h*.cpp文件中删除了执行位。我承诺改变并试图推动它们。我正在处理的机器没有我的SSH密钥,因此推送失败了。

我在使用SSH密钥的另一台机器上做了同样的事情,我能够提交并推送更改。我需要使用Updating file permissions only in git,因为Git没有观察或识别更改的文件权限。

现在,我回到了原来的机器上。我执行了git pull,但拒绝接受更改:

$ git pull
remote: Counting objects: 2, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (2/2), done.
From https://github.com/weidai11/cryptopp
   4206b4a..f03ab5c  master     -> origin/master
Updating 4206b4a..f03ab5c
error: Your local changes to the following files would be overwritten by merge:
    cpu.cpp
    cpu.h
    cryptlib_bds.cpp
    emsa2.cpp
    emsa2.h
    salsa.cpp
    salsa.h
    serpentp.h
    sosemanuk.cpp
    sosemanuk.h
    vmac.cpp
    vmac.h
Please, commit your changes or stash them before you can merge.
Aborting

显然,git太愚蠢了,没有意识到文件权限是本地0644和远程0644,所以没什么可做的。

我怎么告诉git没有合并的东西?

1 个答案:

答案 0 :(得分:0)

如果您认为自己想要保留的本地框没有任何更改,git checkout .将撤消您当地的“更改”,然后您可以撤消。或者,如果git认为您的更改已添加到索引中,则git reset --hard HEAD会将所有内容都删除。不过,我会安全地玩,然后做一个git stash。这样,您没有意识到的任何改变至少是可访问的。