git:本地repo和origin中的文件之间的差异

See*_*pha 169 git git-diff

我想找到我在本地仓库中的文件与其中的文件之间的差异origin master.

我知道有git diff,但我只是想把它隔离到这个特定的文件.

为简单起见,我们假设该文件已命名,file1.txt并且它具有本地文件路径= [local_path]并且在原点中它具有filepath = [remote-path].

我需要输入什么git命令?

编辑:谢谢大家的意见,它非常有见地.对于那些使用Eclipse的人(我和我之前应该说过),我发现你可以直接点击 - >比较 - >分支,标签或参考 - >选择合适的版本然后你就去了.

Cod*_*ice 224

如果[remote-path][local-path]是一样的,你可以做

$ git fetch origin master
$ git diff origin/master -- [local-path]
Run Code Online (Sandbox Code Playgroud)

注1:上面的第二个命令将与本地存储的远程跟踪分支进行比较.需要fetch命令来更新远程跟踪分支以与远程服务器的内容同步.或者,你可以这样做

$ git diff master:<path-or-file-name>
Run Code Online (Sandbox Code Playgroud)

注2: master可以在上面的例子中用任何分支名称替换

  • 实际上,这是一个更好的例子:`git diff origin/master - README.md` (18认同)
  • 如果那是当前目录,甚至可以省略本地路径. (15认同)
  • 对于像我这样非常棒的人,这里有一个例子:`git diff master:README.md - README.md` (15认同)

Sto*_*ica 106

要查看从远程文件到本地文件的差异:

git diff remotename/branchname:remote/path/file1.txt local/path/file1.txt
Run Code Online (Sandbox Code Playgroud)

要查看其他方向的差异:

git diff HEAD:local/path/file1.txt remotename/branchname:remote/path/file1.txt
Run Code Online (Sandbox Code Playgroud)

基本上你可以使用这种表示法在任何地方区分任何两个文件:

git diff ref1:path/to/file1 ref2:path/to/file2
Run Code Online (Sandbox Code Playgroud)

像往常一样,ref1ref2可能分支名称,远程名称/分支名称,提交的SHA等.


Rat*_*der 12

要将本地存储库与远程存储库进行比较,只需使用以下语法:

git diff @ {upstream}