所以我有两个分支: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.
所以看起来有些事情搞砸了。
更新。我还挑选了一些从 master
到 other
分支的提交。也许这也导致了一些问题?
最佳答案
我的直觉说 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/