我从*.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没有合并的东西?
答案 0 :(得分:0)
如果您认为自己想要保留的本地框没有任何更改,git checkout .
将撤消您当地的“更改”,然后您可以撤消。或者,如果git认为您的更改已添加到索引中,则git reset --hard HEAD
会将所有内容都删除。不过,我会安全地玩,然后做一个git stash
。这样,您没有意识到的任何改变至少是可访问的。