git - 检查本地和远程分支差异的有效方法

标签 git

有没有一种有效的方法(在 git 命令上首选)来检查是否例如本地 develop 等于 origin/develop?当然是在调用 git fetch 之后。

git diffdevelop..origin/develop 是正确的方法吗?

我对更改的文件不感兴趣。我只想要“同步 - 是或否”信息。

我想在 PowerShell 中使用它,所以我会有类似的东西:

$result = iex "git diff develop..origin/develop" 
if ($null -eq $result) {
    Write-Host "You're in sync"
}

谢谢

最佳答案

git status 将显示此信息,但以人类可读的格式显示,该格式可能随时更改。

您可以通过比较以下输出来确定您的分支和上游分支之间最新的提交是否不同

git rev-parse origin/develop
git rev-parse develop

您可以通过运行来检查是否有暂存但未提交的更改

git write-tree

并在输出的第一行中查找生成的哈希值

git cat-file -p HEAD

要检查您是否有未暂存的更改,请运行

git status --porcelain

并检查输出是否为空(在这种情况下,没有未暂存的更改)。

关于git - 检查本地和远程分支差异的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57378017/

相关文章:

android - 来自 https ://android. googlesource.com 的项目

linux - 在 Gitlab 实例之间迁移 repos

git目录结构困惑

php - Composer 不会使用我的 fork

java - Netbeans 8.0.1 - 远程存储库包含未 merge 到本地分支的提交

git - 有没有办法摆脱 git status 中的帮助消息?

git - 如何在循环中运行 svn update 以将提交导入到 git?

git - 如何使用 tortoisegit 执行 rebase (squash)

git - SmartGit,无法推送, "remote: HTTP Basic: Access denied"

git - 如何在使用 git 删除函数及其文档 block 时创建适当的补丁