如何在 Git 中显示本地和远程文件之间的差异?

Col*_*ban 5 git

由于我是 Git 的新手,所以我在开始时遇到了一些麻烦(Git 版本 2.12.3)。

我在服务器上创建了一个文件(在 GitLab 中),我可以将其克隆到本地目录。

git clone git@gitlab.server.com:/joe/myproject.git
Run Code Online (Sandbox Code Playgroud)

一切正常,我有文件的本地副本。但是,当我更改文件的远程内容(从其他人或服务器上)时,我无法跟踪或查看本地客户端上的更改,即使它们在主服务器上清晰可见。不与

git diff file1
Run Code Online (Sandbox Code Playgroud)

或者

git diff origin/master
Run Code Online (Sandbox Code Playgroud)

或者是其他东西。

我必须获取文件,合并它,然后才能看到新编辑的内容。获取新文件之前是否可以观察和检测新更改?

Dan*_*man 7

在获取新文件之前是否可以观察和检测新的更改?

不,如果您不获取更改,您的本地存储库就不会知道它们。

我必须获取文件,合并它,然后我才能看到新编辑的内容。

您不必合并它,只需获取它即可!

比较

如果您想将本地路径与远程路径进行比较,请使用:

git diff <repo>/<branch> -- <path>
Run Code Online (Sandbox Code Playgroud)

例如:

git diff origin/master -- program.cpp
--- OR ---
git diff origin/master -- Utils/*
Run Code Online (Sandbox Code Playgroud)


小智 6

我会这样做:

git fetch origin master
Run Code Online (Sandbox Code Playgroud)

然后我会这样做:

git diff master origin/master
Run Code Online (Sandbox Code Playgroud)

以更简单的方式,要查看本地和远程存储库中的差异,语法如下所示:

git diff <masterbranch> <remotebranch>
Run Code Online (Sandbox Code Playgroud)

git difftool如果你安装了一个命令,它也会显示 UI 环境的差异,我很少使用它,所以对我来说这是一个未知的领域。玩得开心。


小智 4

为了满足您的需求,您至少需要来自fetch远程存储库。只有那时 - 在你之前merge- 你才能diff在 yourbranch和 your之间origin/branch