Git:git diff显示更改,但merge更新了吗?

时间:2016-05-13 09:12:22

标签: git git-merge git-diff

所以我有两个分支:主人和其他人。我将其他分支合并为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.

所以似乎有些事搞砸了。

更新即可。我还挑选了一些从masterother分支的提交。也许这也引起了一些问题?

2 个答案:

答案 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。