git svn——为什么其他分支';主服务器上的提交与主干提交混合?
我正在使用git跟踪svn存储库。合并于2014年1月9日完成(产生提交git svn——为什么其他分支';主服务器上的提交与主干提交混合?,git,version-control,commit,git-svn,git-log,Git,Version Control,Commit,Git Svn,Git Log,我正在使用git跟踪svn存储库。合并于2014年1月9日完成(产生提交A),另一次合并于2014年2月12日完成(产生提交B)。当我git签出主机时;git log,我看到了合并的提交,但我也看到了,例如,2014-02-04(C)对分支(作为B的一部分合并)的提交 在主干上运行git log时,为什么会显示针对分支的提交? 我发现这一点的时候,我正试图将我的主机和分支倒带到一个特定的日期,以便再次执行mergeB,查看存在哪些冲突。我假设我可以git checkout master;git复
A
),另一次合并于2014年2月12日完成(产生提交B
)。当我git签出主机时;git log
,我看到了合并的提交,但我也看到了,例如,2014-02-04(C
)对分支(作为B
的一部分合并)的提交
在主干上运行git log
时,为什么会显示针对分支的提交?
我发现这一点的时候,我正试图将我的主机和分支倒带到一个特定的日期,以便再次执行mergeB
,查看存在哪些冲突。我假设我可以git checkout master;git复位——硬B^;git合并分支代码>,但这不起作用,然后我在主干日志中看到来自分支的这些额外提交,感到困惑
如果您能在这个问题上提供任何帮助,我们将不胜感激 如果C
是合并到master
以生成B
的分支的一部分,那么master
上的git日志将包括分支中的所有提交,包括C
。这是预期的行为,并且对于理解作为主控
一部分的所有单个提交是必要的。git log可能有一个标记来隐藏在不同分支中也出现的提交,但我找不到这样的机制。--第一个父级
,它不跟踪仅通过将另一个分支合并到当前分支中才包含的提交。但这并不完美,因为git根本不知道在哪个分支上进行了提交。啊,谢谢!我没想到git svn这么聪明。很久以前,我注意到当我gitsvnclone
ed时,gitlog--oneline--graph
没有正确跟踪分支。“哦,好吧,”我说,“总比什么都没有强。”我没有意识到后来的git svn rebase
等工具能够正确跟踪分支!谢谢你的回答!我原本以为你的意思是合并发生在事物的git
端,当我意识到你的意思是合并发生在svn
端后,我开始猜测我的答案。我找不到任何能给我一个明确答案的推荐信。似乎将svn
合并转换为git
合并必须非常聪明,因为它们是非常不同的概念。不过,我不知道还会发生什么。