如何使用git查看本地更改并将其还原?

时间:2014-11-12 11:44:22

标签: git

我自己无法解决这些问题(这些在Linux中使用svn / rabbitvcs非常容易)

  1. 如何针对一个文件查看针对中央服务器(来源?)的本地更改? (图形)
  2. 如何还原一个文件的本地更改?
  3. 另外,当我拉动时,我收到此错误:

    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”时,究竟会发生什么?它不会还原我的本地更改。

2 个答案:

答案 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}