在提交 pull 请求之前,我尝试用 GitHub 存储库diff
我的本地文件,这样我就可以看到会显示什么。有准确的方法吗?
我假设 GitHub 的比较工具操纵 Git 的 diff
。
最佳答案
将本地工作目录与远程分支进行比较,例如 origin/master:
-
git fetch origin master
这告诉 git 从名为“origin”的远程获取名为“master”的分支。git fetch
将不会影响您工作目录中的文件;它不会尝试 merge 像git pull
这样的更改做。 -
git diff --summary FETCH_HEAD
当获取远程分支时,可以通过 FETCH_HEAD 在本地引用它。上面的命令告诉 git 将工作目录文件与 FETCHed 分支的 HEAD 进行比较,并以摘要格式报告结果。摘要格式给出了更改的概述,通常是一个很好的开始方式。如果您想了解更多信息,请使用--stat
而不是--summary
. -
git diff FETCH_HEAD -- mydir/myfile.js
如果您想查看对特定文件(例如 myfile.js)的更改,请跳过--summary
选项并引用您想要的文件(或树)。
如前所述,origin
引用远程存储库和 master
引用该 repo 中的分支。默认情况下,git 使用名称 origin
对于 Remote ,所以如果你这样做 git clone <url>
默认情况下,它将调用该远程 origin
.使用 git remote -v
看什么origin
指向。
您可能有多个 Remote 。例如,如果您在 GitHub 上“fork”一个项目,您通常需要一个远程引用原始项目以及您自己的 fork。假设您创建了 https://github.com/yourusername/someproject
作为 https://github.com/theoriginal/someproject
的一个分支.按照惯例,您会将 Remote 命名为原始存储库 upstream
,而你自己的 fork 将是 origin
.如果您在 GitHub 上对您的复刻进行更改并希望在本地获取这些更改,您可以使用 git fetch origin master
.如果upstream
进行了更改,您需要在进行更多更改之前在本地同步,您可以使用 git fetch upstream master
.
关于git - 远程和本地存储库之间的“git diff”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11935633/