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

如何使用git查看本地更改并将其还原?,git,Git,我自己无法解决这些问题(在Linux中使用svn/rabbitvcs很容易做到) 如何查看针对一个文件的中央服务器(源?)的本地更改?(以图形方式) 如何恢复一个文件的本地更改 此外,当我执行拉操作时,会出现以下错误: n $ git pull error: Your local changes to the following files would be overwritten by merge: Application/powerbar.cpp Please, commit you

我自己无法解决这些问题(在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”时,将显示以下内容:错误:路径“myfile.cpp”未合并


    当我执行“git reset myfile.cpp”时,到底会发生什么?它不会还原我的本地更改。

    首先,您应该使用
    git status
    查看本地目录中的更改。它将显示您尚未提交的内容。如果您有未跟踪的文件,从git的角度来看,这也是一个更改

    第二,如果要比较本地提交和远程服务器提交,请使用

    git diff origin/{your_branch}
    

    好的,把第二个问题也算出来了,所以把它作为答案贴出来

    我感到困惑的根源在于git的不一致的命令语法(由这篇伟大的文章解释:)

    要将工作目录中的一个文件重置为其提交状态,请执行以下操作: git checkout file.txt

    要将工作目录中的每个文件重置为其提交状态,请执行以下操作: git重置——硬


    最后一点意见是:git要达到svn的一致性、可用性和简单性,似乎还有很长的路要走。

    您使用什么GUI客户端?我不做本地提交,我有主分支,我向中央存储库提交。但是,我如何恢复本地更改以消除合并冲突?我知道这一点当我删除本地文件时,git pull将不会出于某种原因再次下载它们如果不在本地进行任何提交,要还原所有本地更改,请小心使用此选项,尽管它会从repo中删除所有未跟踪的本地文件并还原更改。@bupthebroker如果需要这些文件,也可以使用“git stash save”,提交后使用“git stash pop”获取它们我可以做一个git重置吗?只对一个文件来说很难?git reset和git reset之间的区别是什么?很难,帮助页面似乎使用了某种形式的神秘语言:@bupthebroker,下面是如何重置一个特定文件: