首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带squash的git-subtree :查看日志

不带squash的git-subtree :查看日志
EN

Stack Overflow用户
提问于 2012-06-07 00:26:50
回答 2查看 5.5K关注 0票数 16

我使用不带squash选项的git subtree add将一个树合并到我的存储库。git日志显示提交已成功添加到存储库。但是,如果我执行git log --follow filename,历史记录将在合并时停止,并且不显示以前的提交。我尝试使用-M而不是--follow,同样也不起作用。如何从合并前获取特定文件或文件的提交日志?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-01 03:22:03

实际上,git log --follow应该与子树合并一起工作,但众所周知,它在很长一段时间内都是黑客行为。

人们可以坚持使用子树合并,并断定该策略对于跟踪多个历史是有效的,并耐心地等待git log --follow将会改进的不可避免的事件。这实际上可能是一个可行的决定,因为目前git log --follow可以在非常有用的情况下看到一些历史。假设您将一个文件从顶层存储库移动到子存储库,那么它可以跟踪整个移动过程。当您想要跟踪特定于子存储库的历史记录时,您确实需要有一个单独的副本或签出子存储库分支。

替代方案和变通方法

您可以获取文件的日志,如下所示

代码语言:javascript
复制
git log -- '*filename'          # from the toplevel

此视图中的每个提交操作都会接触到名称以filename结尾的文件。它不会跟随实际的重命名,并且如果您有几个文件具有相同的基名1,则可能会显示误报。

您还可以使用不同的策略合并存储库。参考文献4展示了这样做的一种方法,它非常接近于常规的子树合并,但具有可追溯的历史。基本上,你:

  1. 将每个子存储库作为常规远程存储库添加、获取和合并到顶层存储库,而不是git子树或读取树。首先,这将轮询您的根目录,就好像它是他们的一样,所以这是在项目的开始时将子存储库文件分离到单独的文件夹

中完成的

然后:

可以正常获取和合并

  • 上游的更改,但要使用-Xsubtree标志进行git合并。
  • 其他情况应该类似。我已经测试过上行推送的效果,参见4.

中的评论

参考文献

来自git邮件列表http://git.661346.n2.nabble.com/Bug-Files-are-losing-history-after-subtree-merge-td7597197.html的%1

2从git邮件列表http://git.661346.n2.nabble.com/gsoc-Better-git-log-follow-support-td6188083.html#a6188352

3 git log --follow已经参加了Google Summer of Code https://git.wiki.kernel.org/index.php/SoC2011Ideas#Better_git_log_--follow_support

4

票数 7
EN

Stack Overflow用户

发布于 2013-01-22 06:00:23

git subtree mergegit subtree add创建的提交对来自子树的文件执行“添加”,而不是“移动”。这意味着它们的历史记录不能像其他合并或移动那样被跟踪。

在合并之前,通过直接查看子树,仍然可以显示所需文件的历史记录。如果您的工作区是git subtree创建的合并提交,那么它的第二个父级(HEAD^2)将是原始子树的最后一个提交。在这里,您可以看到原始子树的内容:

代码语言:javascript
复制
# Display the contents of the original subtree
git ls-tree HEAD^2

从这次提交中,您可以跟踪您感兴趣的文件的更改。请注意,您的文件在子树中的路径与在工作区中的路径不同。您需要删除指定给git subtree--prefix,才能获得正确的文件路径。

代码语言:javascript
复制
git log HEAD^2 --follow -- path-in-subtree/file
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10918244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档