如何查看diff
本地分支和远程分支之间的?
git diff HEAD origin/HEAD
是指向与我想要的远程分支不同的远程分支。使用完整的分支名称按预期方式工作。
如何查看diff
本地分支和远程分支之间的?
git diff HEAD origin/HEAD
是指向与我想要的远程分支不同的远程分支。使用完整的分支名称按预期方式工作。
Answers:
要更新远程跟踪分支,您需要先输入git fetch
,然后输入:
git diff <masterbranch_path> <remotebranch_path>
您可以git branch -a
列出所有分支(本地和远程),然后从列表中选择分支名称(只需remotes/
从远程分支名称中删除即可)。
示例:(git diff master origin/master
其中“ master”是本地master分支,而“ origin / master”是远程即Origin和master分支。)
git fetch
)
[diff] tool = vscode [difftool] prompt = false [difftool "vscode"] cmd = \"C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe\" \"$LOCAL\" \"$REMOTE\" --diff --wait trustExitCode = false
确保您的code.exe文件路径正确。
git diff <local branch> <remote>/<remote branch>
例如git diff master origin/master
,或git diff featureA origin/next
当然,到了说,远程追踪分支,你需要git fetch
先; 并且您需要它具有有关远程存储库中分支的最新信息。
git diff <remote>/<remote branch> <local branch>
查看推送对远程回购的影响。
git diff origin
如果仅与上游分支进行比较,则更短就足够了。
git fetch
在开始时添加内容,这会给像我这样的新手带来麻烦
git diff <remote>/<remote branch> <local branch>
吗?否则,我得到的添加和删除我的电脑(GIT版本2.7.0.windows.2)接通
第一类
git branch -a
获取可用分支的列表。在输出上,您可能会看到类似
* master
remotes/main/master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/mt
remotes/upstream/master
remotes/upstream/mt
然后显示差异
git diff --stat --color remotes/main/master..origin/master
git diff remotes/main/master..origin/master
...
不是..
?
git log origin/my_branch..
会把它HEAD
作为本地引用,这主要是您的意思。
fatal: bad revision
或fatal: ambiguous argument
。我只想从另一个分支查看同一文件上的差异,问得太多了吗?是的,是的。:-) git diff remotes/origin/<base branch> <current branch> -- <filename>
在git 1.8.3.1上工作出色
如果您在给定的分支上,并且想要将其与要跟踪的上游分支进行比较,请使用
git diff @{upstream}
如果上游没有设置(通常是这种情况,谢谢Arijoon的评论)
git diff @{push}
<branchname>@{upstream}
,例如master@{upstream}
,分支名称@{u}
的后缀@{upstream}
(简称<branchname>@{u}
)是指由指定的分支branchname
设置为建立在(基于branch.<name>.remote
和配置branch.<name>.merge
)之上的分支。缺项branchname
默认为当前项。
git diff @ @{upstream}
。多余的@
是HEAD
,这是您现在的位置,因此您正在HEAD
与分支跟踪的上游进行比较。您可以使用@{push}
上游而不是上游来获取要设置为推入的分支之间的差异
fatal: ambiguous argument '@upstream': unknown revision or path not in the working tree
。不得不使用git diff @\{upstream\}
代替。😥
我对以下内容的输出了解得更好:
git diff <remote-tracking branch> <local branch>
如果我按本地分支,那会告诉我要删除的内容和要添加的内容。当然是一样的,只是反过来,但对我来说更具可读性,并且我更乐意观察即将发生的事情。
这就是我的方法。
#To update your local.
git fetch --all
这将从远程获取所有内容,因此当您检查差异时,它将差异与远程分支进行比较。
#to list all branches
git branch -a
上面的命令将显示所有分支。
#to go to the branch you want to check difference
git checkout <branch_name>
#to check on which branch you are in, use
git branch
(or)
git status
现在,您可以按以下方式检查差异。
git diff origin/<branch_name>
这会将您的本地分支与远程分支进行比较
让您的工作分支是开发部门,并想区分本地开发分支机构和远程开发分支机构,这种情况下,语法应类似于git diff remotes/origin/development..development
或
git fetch origin
git diff origin/development
tl; dr:git diff <local branch> <remote branch>
在外壳上使用git时,我喜欢先环顾四周。这是显示所有分支的命令
$ git branch -a # (or git branch --all)
* my-branch
master
remotes/origin/some-branch
remotes/origin/HEAD -> origin/master
remotes/origin/my-branch
remotes/origin/some-other-branch
remotes/origin/master
在这里,我有两个地方分支机构(my-branch
和master
)和4个远程(some-branch
,some-other-branch
,master
和my-branch
)。
另外,旁边的星号my-branch
表示我当前在该分支中(您也可以通过使用git status
将输出:的命令来知道这一事实On branch my-branch.
)。
注意:git bash shell中的远程分支以红色显示,而本地分支以绿色显示。
如果您只想显示远程分支:
$ git branch -r # (or git branch --remotes)
origin/some-branch
origin/HEAD -> origin/master
origin/my-branch
origin/some-other-branch
origin/master
为了只显示本地分支,您可能会想使用git branch -l
它,但这是完全不同的命令。为了显示当地分支机构使用git branch
不带任何选项
$ git branch
* my-branch
master
为了完成对基本分支选项的回顾--list
,与您可能期望的允许过滤相反。将其与以下模式一起使用:
$ git branch --list 'my*'
* my-branch
您也可以--list
与选项结合使用-a
,-r
但要确保相应地调整模式(请记住:远程分支以“ remotes”开头)。例:
# this will show all branches (local & remote) that start with my
$ git branch --list 'my*' -a
* my-branch
# better: the pattern includes the remote
$ git branch --list '*my*' -a
* my-branch
remotes/origin/my-branch
文件:https://git-scm.com/docs/git-branch
现在,您可以比较所有可用分支中的任何两个分支(还可以比较两个本地或两个远程)。
在这里,我正在比较本地和远程my-branch
,它们是同步的,所以我没有任何输出:
$ git diff my-branch remotes/origin/my-branch
注意:您必须提供分支机构的全名,且不要带引号。
我还可以将本地my-branch
与远程进行比较master
。在这里,我得到了一些输出,因为遥控器my-branch
尚未合并到master分支中。
$ git diff my-branch remotes/origin/master
diff --git a/src/controllers/call.controller.js b/src/controllers/call.controller.js
index fd79b98..df3d798 100644
--- a/src/controllers/call.controller.js
+++ b/src/controllers/call.controller.js
@@ -261,7 +261,7 @@ function callController() {
/*
* Function: doCall
[ . . . ]
如果您只想更改文件名就可以看到差异,请使用:
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 fetch
在运行之前明确提到远程名称git diff
,在我的情况下:
$ git fetch heroku
$ git diff master heroku/master
希望对其他人有帮助。
git difftool <commit> .
这会将您想要的提交与本地文件进行比较。不要忘了最后的点(对于本地)。
例如,将本地文件与某些提交进行比较:
git difftool 1db1ef2490733c1877ad0fb5e8536d2935566341。
(并且您不需要git fetch,除非需要与新提交进行比较)
在VS 2019中,只需执行FETCH即可不提取代码。
这就是我所做的。在.gitconfig文件中添加以下内容,以便我可以使用Beyond Compare
File location: C:\Users\[username]\.gitconfig
在下面添加
[diff]
tool = bc
[difftool "bc"]
path = c:/Program Files/Beyond Compare 4/bcomp.exe
打开命令提示符,然后转到工作目录。我在下面给出了将本地DEV分支与远程DEV分支进行比较的信息
git difftool dev origin/dev --dir-diff
这将打开“超越比较”并打开包含不同文件的目录。如果没有任何更改,将无法启动“超越比较”。
我不知道我的主分支是否有任何变化...
git checkout主
git状态
git分支-a
- 主
遥控器/原点/主
git diff起源/主
git config alias.udiff 'diff @{u}'
git fetch # Do this if you want to compare with the network state of upstream; if the current local state is enough, you can skip this
git udiff
这将回答您标题中的问题(“它的遥控器”);如果要与“远程”(未配置为分支的上游)进行比较,则需要直接将其定位。您可以看到所有具有以下内容的远程分支:
git branch -r
您可以使用以下命令查看所有已配置的遥控器:
git remote show
您可以看到单个遥控器(例如来源)的分支/跟踪配置,如下所示:
git remote show origin
一旦确定了适当的原点分支,就执行常规的diff :)
git diff [MY_LOCAL] MY_REMOTE_BRANCH
这很简单。您可以使用:git diff remote/my_topic_branch my_topic_branch
my_topic_branch
您的主题分支在哪里。
尝试:
git diff origin HEAD
假设您想将当前的本地分支HEAD
与原点进行比较。并假设您在本地分支机构中。:)
如果使用TortoiseGit(它为Git提供GUI),则可以右键单击Git repo文件夹,然后单击Git Sync
。
如果未选择,则可以选择要比较的分支。比您可以查看差异提交。您还可以右键单击任何提交,然后Compare with previous revision
并排查看差异。