Git:git diff show changes,但 merge 说是最新的?

标签 git git-merge git-diff

所以我有两个分支:master 和 other。我将其他分支 merge 到主分支中,但由于某种原因,一次提交的源代码没有改变。

我可以通过运行 git log 在 master 中看到那些提交,但实际的源代码没有改变。 other 分支有新变化,master 没有。

所以运行:

git diff master..other dir_name

给我看这个:

--- a/dir_name/views/purchase_order_report.xml
+++ b/dir_name/views/purchase_order_report.xml
@@ -60,9 +60,9 @@
                     <span t-field="o.partner_id.name"/>
                     <div t-field="o.partner_id"
                         t-field-options='{"widget": "contact", "fields": ["address"], "no_marker": true}'/>
-                    <t t-if="o.partner_id.child_ids.search([('type', '=', 'invoice')])">
+                    <t t-if="o.partner_id.child_ids.filtered(lambda r: r.type == 'invoice')">
                         <span>Attn: 
-                            <span t-esc="o.partner_id.child_ids.search([('type', '=', 'invoice')])[0].name"/>
+                            <span t-esc="o.partner_id.child_ids.filtered(lambda r: r.type == 'invoice')[0].name"/>
                         </span>
                     </t>
                 </div>

+ 行也应该在 master 中,但由于某些原因不是。

并做:

git checkout master
git merge other
Already up-to-date.

所以看起来有些事情搞砸了。

更新。我还挑选了一些从 masterother 分支的提交。也许这也导致了一些问题?

最佳答案

我的直觉说 master 中有一些提交不在 other 中。 git-merge merge 实际提交 - 您拥有不同文件的事实并不意味着它们没有 merge 。

尝试运行:

git checkout other
git merge master

然后查看文件是否被更改。如果是,那正是我上面描述的原因。

编辑:如果你想在 other 中对 master 进行更改只是为了这个文件,你可以在 master 上找到更改文件的提交 和 cherry-pick 它们(google git cherry-pick - 请注意,这会引入整个提交,这在您的情况下可能是不可取的),或者手动应用它们。无法通过 merge 获得“仅此文件”。

关于Git:git diff show changes,但 merge 说是最新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37205900/

相关文章:

git - 如何在不推送我的情况下从 GitHub pull 更改?

git - merge 时存储

git - `git diff --stat` 排除某些文件

git - 使用 GIT 分支/分支

git - merge 从上游更新的冲突

git - merge 后继续git分支是否常见?

git - 为什么 git diff-tree show 总是显示重命名为添加和删除

git - 为什么 `git range-diff` 不显示差异?

git - 错误 : hook declined to update refs/heads/external_pub while pushing a branch

git - 尝试推送到 master 时返回错误