如何查看本地分支和远程分支之间的diff
?
如果您希望仅通过文件名的更改来查看差异,则可以使用以下命令:
git diff --name-status <remote-branch> <local-branch>
否则,这将显示两个分支之间的所有差异:
git diff <remote-branch> <local-branch>
heroku
的远程主机,它不是origin
,由于它没有同步,当我尝试运行git diff master heroku/master
时,就会出现以下错误:
当尝试另一种方法fatal: ambiguous argument 'heroku/master': unknown revision or path not in the working tree.
git diff master..heroku/master
时,则会出现以下错误:
解决办法是在运行fatal: bad revision 'master..heroku/master'
git diff
之前,在git fetch
中明确提到远程名称。在我的情况下,命令如下:$ git fetch heroku
$ git diff master heroku/master
git difftool <commit> .
这将比较您想要的提交与您的本地文件。不要忘记在末尾加上“点”(表示本地文件)。
例如,要将您的本地文件与某个提交进行比较:
git difftool 1db1ef2490733c1877ad0fb5e8536d2935566341 .
(除非需要与新提交进行比较,否则不需要 git fetch)
尝试:
git diff origin HEAD
HEAD
与原始版本进行差异比较。并假设您在本地分支上。:)首先需要做的是在本地分支上运行:
git fetch
如果您在控制台结果中看到更改,例如:
'diff --git a/versions.txt b/versions.txt
index 82d6379..794e6c7 100644
--- a/versions.txt
+++ b/versions.txt
@@ -9,3 +9,4 @@ version8
version 9 let it fetch yes
let see changes ok ?
another line
+second line^M'
如果你看到了这个标签 <p>
,那就意味着远程仓库中有一些变更还没有同步到本地仓库。你可以使用以下命令检查远程仓库是否领先于本地仓库:
git log origin/master
git log remoteRepo/localRepo
现在运行以下命令:
git diff master origin/master
git diff localRepo remoteRepo/localRepo
这样你就可以看到它们之间的差异了。
请注意,首先运行
git log origin/master
命令并不能显示是否有变更,你必须先进行获取操作。
然后你可以使用以下命令将这些变更拉取到本地仓库中:
git pull origin master
git pull remoteRepo localRepo
我想知道我的主分支(master)有没有任何更改...
Firstly, you need to change your branch (If you are already under this branch, you do not need to do this!):
git checkout master
You can see which file has been modified under your master branch by this command:
git status
List the branches
git branch -a
- master
remotes/origin/master
Find the differences
git diff origin/master
git diff main origin/master
fatal: ambiguous argument 'main': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
git push
(因为远程和本地都需要更新),然后这个方法才有效:git diff master origin/master
main
,而这个 repo 没有一个叫做 main 的分支(只有 master
)。但这只是我的猜测。老实说,我会忽略我在这里的回答。我会考虑删除它,因为我觉得它并没有真正帮助到你。 - stevecgit diff origin/$(git rev-parse --abbrev-ref HEAD)
git diff remote/my_topic_branch my_topic_branch
其中my_topic_branch
是您的主题分支。
git diff HEAD origin/HEAD
,但它似乎指向了一个与我预期不同的远程分支。使用完整的分支名称可以按预期工作。 - Deanna