我自己无法解决这些问题(这些在Linux中使用svn / rabbitvcs非常容易)
另外,当我拉动时,我收到此错误:
n $ git pull
error: Your local changes to the following files would be overwritten by merge:
Application/powerbar.cpp
Please, commit your changes or stash them before you can merge.
Aborting
但是当我为文件执行git diff
时,它不会显示任何内容。
编辑:原来该文件是本地文件(powerbar.cpp),为什么git想要覆盖我的本地文件?
编辑: 当我执行“git checkout myfile.cpp”时,会显示以下内容:error:path'myfile.cpp'is unmerged
当我执行“git reset myfile.cpp”时,究竟会发生什么?它不会还原我的本地更改。
答案 0 :(得分:1)
好的,也想出了问题2,因此将其作为答案发布。
我困惑的根源在于git的命令语法不一致(由这篇伟大的文章解释:http://stevebennett.me/2012/02/24/10-things-i-hate-about-git/)。
要将工作目录中的一个文件重置为其已提交状态: git checkout file.txt
要将工作目录中的每个文件重置为其已提交状态: git reset --hard
如果我可以做出最终评论:似乎git还有很长的路要走,以达到svn的一致性,可用性和简单性的水平。
答案 1 :(得分:0)
首先,您应该使用git status
查看本地目录中的更改。它会告诉你你没有做过什么。如果你有未跟踪的文件 - 这也是从git的角度来看的变化。
其次,如果要将本地提交与远程服务器使用进行比较
git diff origin/{your_branch}