所以我有两个分支:主人和其他人。我将其他分支合并为master,但由于某种原因,一次提交的源没有更改。
我可以通过运行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>
+
行也应该是主人,但不是出于某种原因。
并且正在做:
git checkout master
git merge other
Already up-to-date.
所以似乎有些事搞砸了。
更新即可。我还挑选了一些从master
到other
分支的提交。也许这也引起了一些问题?
答案 0 :(得分:0)
我的预感是master
中有一些提交不在other
中。 git-merge
合并实际提交 - 您拥有不同文件的事实并不意味着它们未合并。
尝试跑步:
git checkout other
git merge master
并查看文件是否已更改。如果是,那正是由于我上面所描述的。
编辑:如果您希望master
中的other
仅对此文件进行更改,您可以找到更改master
上的文件的提交并挑选它们(google git cherry-pick
- 请注意,这会引入整个提交,在您的情况下可能不合适),或手动应用它们。没有办法获得&#34;只是这个文件&#34;通过合并。
答案 1 :(得分:0)
尝试 git cherry master其他,输出'+'或' - '后跟commit-sha1,这些已经在其他但尚未在master中的历史记录中。你可以忽略' - '行并专注于'+'行。 ' - '表示主人没有合并提交但已经有一个等效的补丁(由git am,git cherry-pick或git rebase应用)。 '+'表示主服务器未合并提交且没有等效的修补程序。
然后 git log other - dir_name 以查看输出中是否有'+'commit-sha1。