如何区分本地分支和远程分支?


当前回答

这很简单。你可以使用:git diff remote/my_topic_branch my_topic_branch

其中my_topic_branch是您的主题分支。

其他回答

例子

git diff 'master' 'testlocalBranch'

如果你使用WebStorm这样的编辑器,你可以右键点击一个文件,选择比较分支,然后输入/选择你的分支。

我想知道我的主分支是否有任何变化…

首先,你需要改变你的分支(如果你已经在这个分支下,你不需要这样做!): Git checkout master 你可以通过下面的命令查看在你的主分支下哪个文件被修改了: git状态 列出分支 Git分支-a 主 遥控器/产地/主人 发现差异 Git差异的起源/主

第一个类型

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

TLDR: git diff <本地分支> <远程分支>

当在shell中使用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)和四个远程分支(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

为了完成对基本分支选项的回顾,有一个——列表,与您可能期望的相反,它允许过滤。使用它的模式如下:

$ 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

文档:git分支

现在您可以比较所有可用分支中的任意两个分支(还可以比较两个局部分支或两个远程分支)。

这里我比较了本地的和远程的my-branch。它们是同步的,所以我没有得到任何输出:

$ git diff my-branch remotes/origin/my-branch

注意:您必须给出分支的全名,不带引号。

我还可以将本地my-分支与远程主服务器进行比较。这里我得到了一些输出,因为远程my-分支还没有合并到主分支中。

$ 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
[ . . . ]

你可以使用——compact-summary选项。

男人不一样

输出扩展头信息的浓缩摘要,例如文件创建或删除(“new”或“gone”,如果是符号链接,可选“+l”)和模式更改(“+x”或“-x”) 分别添加或删除可执行位)在diffstat。信息放在文件名部分和图形部分之间。意味着——统计。

e.g.

git diff $(current_branch) origin/$(current_branch)