简短版:
我有两个分支,内容不同。当我在一个分支机构并从另一个分支机构进行合并时,它会说“已经是最新的”。这怎么可能呢?
我现在甚至没有做过拉动,只是从本地分支合并,以保持简单。
可能会有太多细节。
我将以一个特定文件为例。在分支主机(我正在编辑电子邮件地址和旧提交):
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git log mde/ss/schools/_clone/segmeta.csv
commit 9e9ee2b19e7a476f2d61ecff1c5d54634132dd93
Author: gormleycep <redacted>
Date: Mon Nov 23 11:18:41 2015 -0800
Fixes spacing issues in segmeta files (my mistake)
commit 6e341cd2a92a1044c957a7a9631e365a08466440
Author: gormleycep <redacted>
Date: Fri Nov 6 12:36:52 2015 -0800
Updated percent positive tables
commit efc05d8b838fb3e8efdc074b65d1a93046c7e6c9
Author: Alan deLespinasse <redacted>
Date: Tue Aug 11 18:46:42 2015 -0400
Fix missing segmentations in MDE Secondary School reports.
在分支BTP_E2ESCH中:
$ git checkout BTP_E2ESCH
Checking out files: 100% (2330/2330), done.
M common
Switched to branch 'BTP_E2ESCH'
Your branch is up-to-date with 'origin/BTP_E2ESCH'.
$ git log mde/ss/schools/_clone/segmeta.csv
commit 9367a601eef9a7a8975a0cf22d5b49b163a3710c
Author: cepbrian <redacted>
Date: Fri Nov 13 16:17:49 2015 -0500
trying to add end to end tests.
commit efc05d8b838fb3e8efdc074b65d1a93046c7e6c9
Author: Alan deLespinasse <redacted>
Date: Tue Aug 11 18:46:42 2015 -0400
Fix missing segmentations in MDE Secondary School reports.
11月13日由cepbrian所做的更改与11月6日由gormleycep所做的更改相同(两个更改都将相同的两行添加到文件中)。 gormleycep在11月23日做出的改变消除了这两条线的空间。这两个分支中的文件肯定不一样。现在我做:
$ git merge master
Already up-to-date.
分支BTP_E2ESCH中的文件没有改变。
以下是gitk --all --date-order mde/ss/schools/_clone/segmeta.csv
的输出,以便于显示:
Git会在哪个国家出现这种情况?
答案 0 :(得分:2)
我认为问题是git log -- <filename>
的输出可能有点欺骗。来自man git-log
:
[ - ] ...... 仅显示足以解释文件的提交 匹配指定的路径。
并重定向到历史简化部分,其中有很多细节......
我的意思是您的分支可能已经合并,但您在简化的日志中看不到它!
最好用一个例子来看。让我们考虑一下这个存储库:
A----B----C----M
\----T----/
有分支的地方,test
指向T
,master
指向M
,这是合并提交。存储库中有一个file
,每个提交都有这个内容:
A: 1
B: 2
C: 3
T: ttt
M: 3
将test
合并到master
时发生了冲突,这是通过从T
丢弃版本来解决的。
现在,如果我从master
,git log
开始,我会:
M
C
T
B
A
但如果我运行git log -- file
,我会得到:
C
B
A
因为T
和M
提交对文件的最终内容没有影响。这是历史简化!
您可以运行git log --full-history -- test
以获取触及该文件的所有提交:
M
C
T
B
A