我可以使用 `diff ...` 作为分支清理的指标吗?

Can I use `diff ...` as an indicator for branch cleanup?

我有分支机构
git branch -d some_branch
returns
branch 'some_branch' is not fully merged.

但是 git diff ...some_branch
是空的。

换句话说,(据我了解)"some_branch" 中没有我当前没有的更改。但它不是 "fully merged".

我假设这可能发生的唯一方法是对当前分支进行变基,我是否正确?在这种情况下,历史可能有分歧,但代码没有分歧。

此外,这似乎总是故意行为的结果。

因此,如果 git diff ...some_branch 为空,我应该始终安全地删除分支。对吗?

当 git 抱怨 "not fully merged" 时,它是在谈论提交的关系,而不是文件的内容。

如果您有一个基本提交并且在这两个不同的提交之上引入了相同的更改,那么两者之间的差异为空。但是你的分支有 "two heads" 因此是 "not fully merged".

-- A -- B
    `-- B'

在您的情况下,您的本地负责人可能在 B,而您的上游负责人在 B'

如果您删除本地分支,您的本地提交将不会成为上游历史记录的一部分。因此,提交及其所有元数据(如作者、日期等)都将丢失。 - 这就是警告的原因。