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


当前回答

我更理解输出:

Git diff <远程跟踪分支> <本地分支>

它告诉我,如果我推本地分支,什么将被删除,什么将被添加。当然,它是一样的,只是相反,但对我来说,它更可读,我更舒服地看着将要发生的事情。

其他回答

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

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

如果你在一个给定的分支上,并且你想要比较你的工作副本和你正在跟踪的上游分支,使用:

git diff @{upstream}

如果你想比较你当前的HEAD和上游分支(谢谢@Arijoon):

git diff @ @{upstream}

如果你的上游没有设置,你可以使用@{push}来获得一个与你设置推送的分支的差异(也来自@ arijoon的评论):

git diff @{push}

由于这个答案,git文档指定的修订有:

<branchname>@{upstream},例如master@{upstream}, @{u} 后缀 @{upstream}指向一个分支名(简称<branchname>@{u})的指 由branchname指定的分支所要构建的分支 顶部(配置了分支。<name>.)远程和分支。<name>.merge)。 缺少的分支名默认为当前分支名。

git difftool <commit> .

这将比较您想要的提交和您的本地文件。不要忘记最后的点(本地)。

例如,比较你的本地文件和一些提交:

git difftool 1db1ef2490733c1877ad0fb5e8536d2935566341 .

(并且你不需要git fetch,除非需要与new commit进行比较)

要更新远程跟踪分支,你需要先输入git fetch,然后:

git diff <mainbranch_path> <remotebranch_path>

您可以git branch -a列出所有分支(本地和远程),然后从列表中选择分支名称(只需从远程分支名称中删除remotes/即可)。

例如:git diff main origin/main(其中“main”是本地主分支,“origin/main”是远程分支,即原点和主分支。)

简单的方法:

git fetch
git log -p HEAD..FETCH_HEAD

这将首先从默认远程(origin)获取更改。这将在克隆存储库时自动创建。你也可以显式:git fetch origin master。

然后git log用来比较你当前的分支和刚刚获取的分支。(-p(生成补丁)选项显示了差异。)