我正在尝试将开发分支合并到master中。但是它似乎取消了在主文件中进行的提交,以至于特定提交不再出现在文件的git log
中。为什么git在合并后失去了日志提交?
当我在主分支,我可以看到07月14
c:\src>git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
c:\src>git log server\Fitnesse\FitNesseRoot\APITest\content.txt
commit 88a68b11b273b98531ae686b85b5733b86706bda
Author: charles
Date: Fri Jul 15 00:56:44 2016 +0000
XX-338 Add IsDeleted to Place table
commit 2d1b9afdabd7fbbf970d697bd0c15957a8fd288a
Author: charles
Date: Thu Jul 14 23:15:28 2016 +0000
fix FitNesse test which are broken by renaming
commit f1616fed48bb15c1c120cfe016e571f49aae6244
Author: charles
Date: Tue Jun 21 11:04:53 2016 +1200
modify fitNesse Test for new API changes.
然后我在大分支合并提交2d1b9af
。
c:\src>git merge origin/myLargeBranch
Removing server/Database/355_UnitTest.sql
Merge made by the 'recursive' strategy.
.../packages.config | 2 +-
.../Utilities/Extensions/StringExtensions.cs | 10 +
.../Utilities/Throttle.cs | 45 ++++
[ ... etc ]
.../FitNesseRoot/APITest/content.txt | 37 +--
128 files changed, 3705 insertions(+), 481 deletions(-)
create mode 100644 [ ... ]
c:\src>git status
On branch master
Your branch is ahead of 'origin/master' by 32 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
我注意到它改变了我正在看的文件。自从我拿到分支后,我实际上并没有修改这个文件。这可能与我的问题有关,但这并不是我所问的。
什么,现在是对我很重要,是他犯从7月14日是不是在我的日志更多:
c:\src>git log server\Fitnesse\FitNesseRoot\APITest\content.txt
commit f1616fed48bb15c1c120cfe016e571f49aae6244
Author: charles
Date: Tue Jun 21 11:04:53 2016 +1200
modify fitNesse Test for new API changes.
commit 16b7beb9d1045f5fe7354c0fdbe637a49bb48ce0
Author: charles
Date: Tue May 10 10:54:13 2016 +1200
所以我是担心得到错误的代码在小结束。这是一个位的一个担心。
但我真的更担心的是Git是现在没有出现在它的日志的变化做过。
我缺少什么?
更新在@ tim-biegeleisen的评论之后,我追踪了实际的提交,但我仍然感到困惑。
的罪魁祸首似乎是从主合并到我的开发分支:
c:\src>git show b5637f9
commit b5637f9a65e415f1b415fad99c9e7a4e6b46ab1a
Merge: cb8ed90 6b5c0e1
Author: GregH <[email protected]>
Date: Tue Jul 26 04:25:40 2016 +0000
Merge from master
[ ... ]
CB8 ...是我的分支:
c:\src>git checkout cb8ed90
Previous HEAD position was 6b5c0e1... PR 93: Merge DeletePlace to master
HEAD is now at cb8ed90... Added tests for apple messages
c:\src>git log server\Fitnesse\FitNesseRoot\APITest\content.txt
commit f1616fed48bb15c1c120cfe016e571f49aae6244
Author: charles
Date: Tue Jun 21 11:04:53 2016 +1200
6B5 ......是主
c:\src>git checkout 6b5c0e1
Previous HEAD position was cb8ed90... Added tests for apple messages
HEAD is now at 6b5c0e1... PR 93: Merge DeletePlace to master
c:\src>git log server\Fitnesse\FitNesseRoot\APITest\content.txt
commit 88a68b11b273b98531ae686b85b5733b86706bda
Author: charles
Date: Fri Jul 15 00:56:44 2016 +0000
合并后,我已经从7月14日和15日失去了承诺。
c:\src>git checkout b5637f9
Previous HEAD position was 6b5c0e1... PR 93: Merge DeletePlace to master
HEAD is now at b5637f9... Merge from master
c:\src>git log server\Fitnesse\FitNesseRoot\APITest\content.txt
commit f1616fed48bb15c1c120cfe016e571f49aae6244
Author: charles
Date: Tue Jun 21 11:04:53 2016 +1200
**更新:**通过VonC建议,git log --all
显示提交仍处于历史。
没有--all
,它是如上述,显示最新更新6月21日 git的日志服务器\ FitNesse的\ FitNesseRoot \ APITEST \ content.txt (不重复点的话)。
但与--all
他们在那里:
c:\src>git log --all server\Fitnesse\FitNesseRoot\APITest\content.txt
commit 88a68b11b273b98531ae686b85b5733b86706bda
Author: charles
Date: Fri Jul 15 00:56:44 2016 +0000
XX-338 Add IsDeleted to Place table
commit 2d1b9afdabd7fbbf970d697bd0c15957a8fd288a
Author: charles
Date: Thu Jul 14 23:15:28 2016 +0000
fix FitNesse test which are broken by renaming
commit f1616fed48bb15c1c120cfe016e571f49aae6244
Author: charles
Date: Tue Jun 21 11:04:53 2016 +1200
modify fitNesse Test for new API changes.
怎么让他们在合并过程中撤消?
基于第二个'git log',我看到_three_缺少提交:7月14日和15日提交失败,也没有合并提交。这种合并在哪里发生?它是本地的还是像GitHub一样的回购? –
@TimBiegeleisen这些命令针对TFS git托管回购的本地克隆运行。从主人到我的开发分支有几个合并。他们都没有反对该文件。我会调查这方面。 – GregHNZ
分支中的提交在Git中不会轻易消失,除非它们被删除,或者它们可能并不是真的存在。例如,如果您实际合并到的'master'分支不是您本地的版本,则后一种情况可能是解释。 –