在提交拉取请求之前,我正在尝试diff
使用 GitHub 存储库访问我的本地文件,因此我可以看到会显示什么。有没有一种准确的方法来做到这一点?
我假设 GitHub 的比较工具操纵了 Git 的diff
.
将本地工作目录与远程分支进行比较,例如origin/master:
git fetch origin master
git fetch
不会影响您工作目录中的文件;它不会像这样做那样尝试合并更改git pull
。git diff --summary FETCH_HEAD
--stat
而不是--summary
.git diff FETCH_HEAD -- mydir/myfile.js
--summary
选项并引用您想要的文件(或树)。如前所述,origin
引用远程存储库并master
引用该存储库中的分支。默认情况下,git 使用origin
远程的名称,因此如果您这样做git clone <url>
,它将默认调用该远程origin
。用于git remote -v
查看origin
指向的内容。
您可能拥有多个遥控器。例如,如果您在 GitHub 上“分叉”一个项目,您通常需要远程引用原始项目以及您自己的分叉。假设您创建https://github.com/yourusername/someproject
为https://github.com/theoriginal/someproject
. 按照惯例,您将远程命名为原始 repo upstream
,而您自己的 fork 将命名为origin
. 如果您在 GitHub 上对 fork 进行更改并希望在本地获取这些更改,您将使用git fetch origin master
. 如果upstream
在进行更多更改之前您需要在本地同步所做的更改,您将使用git fetch upstream master
.
不要做pull
:
fetch
(语法与 相同git pull
,但不会自动合并)diff
在你的 dest 分支和另一个分支之间做一个merge
如果你想根据 OP 的评论,他的“问题是 Windows 与 Unix LFs”的一部分,这应该会有所帮助:
您可以使用以下配置命令告诉git-diff
忽略EOL代码的差异。
git config --global core.whitespace cr-at-eol
您可以使用:git diff remote/my_topic_branch my_topic_branch
my_topic_branch
您的主题分支在哪里。
EG git diff master origin/master
需要记住的重要一点: Git diff 将显示两个提交的分支(远程或本地)之间的差异。
步骤 1) - 提交本地
所以第一步要做的是确保你已经提交了你的本地存储库。您可以运行git status
以查看是否还有任何文件。
如果您需要添加文件,请运行git add {filename}
或添加所有文件git add .
。然后你可以运行 a git commit -m "message"
来提交你的本地文件。
步骤 2) - 从远程获取您的分支
您可以使用 git fetch origin master
. 如果您看到如下消息,您就可以开始了。
branch master -> FETCH_HEAD
请注意,origin 是存储库,master 是该存储库中的分支。
步骤 3 检查差异
现在您可以git diff --summary FETCH_HEAD
或 git diff origin/master master --summary
也可以看到您的更改。