6

我在一个三人团队中使用 Git 来构建一个 iOS 应用程序。对于这个项目,我们都是基于 Mac 和 Xcode 的,并且有多种不同的方式使用 Git:在 Xcode 中、使用 Github Desktop 以及从 Bash 终端。

我对我在 GitHub 桌面上看到的历史感到困惑——它是线性的,似乎全部来自一位开发人员。

我可以使用终端命令git log --since='2016-05-06' --pretty=format:"%h %an %cd" --graph查看最近几天的提交:

终端 git 日志截图

我可以清楚地看到最后十二次提交分布在所有三个贡献者之间。但它在 GitDesktop 中看起来不是这样的:

GitHub截图

在这里,所有最近的提交似乎都来自一位开发人员,并且都是线性布局的,没有--graph选项 to显示的分支结构git log

为什么 GitHub 桌面以一个开发者的身份呈现历史?分支结构哪里去了?如何让 GitHub Desktop 向我显示git log能够显示的历史记录?

4

1 回答 1

7

我收到了 GitHub 团队的回复。

更好比较的终端命令是git log --since='2016-05-06' --pretty=format:"%h %an %cd" --graph --first-parent. 查看git log 文档,该--first-parent选项被描述为:

在看到合并提交时,仅关注第一个父提交。在查看特定主题分支的演变时,此选项可以提供更好的概览,因为合并到主题分支往往只是为了不时调整到更新的上游,并且此选项允许您忽略引入的单个提交通过这样的合并你的历史。

在他们的回复中,GitHub 分享了他们的一位开发人员对 GitHub 桌面比较图的评价

“GitHub Desktop 针对GitHub Flow进行了优化。在这个模型中,合并几乎总是代表(1)通过拉取请求合并到默认分支的分支或(2)从默认分支更新的分支。

在第一种情况下,最有用的是查看哪些拉取请求已被合并——而不是构成该拉取请求的单个提交。我们认为拉取请求非常棒,并且对于理解历史非常有用,因此我们希望优先考虑它们。

在第二种情况下,看到合并中的提交只会掩盖分支上的更改。查看分支独有的提交是最有用的。”

但目标是“在未来 [他们] 想让所有提交都可以在 GitHub Desktop 中访问”

于 2016-05-10T14:56:25.180 回答