为什么每次合并分支后我的 git log graph 都会多增长一行?

Chr*_*Kao 5 git merge branch

我习惯使用git log --oneline --graph --decorate --all别名git ll来查看终端中的提交图

但是当我每次将我的合并developmaster. 上面命令的输出可能是这样的:

* 0d1bf7b (HEAD -> master) Fix typo
*   f843224 Merge 'develop' to 'master'
|\
* | d673b76 (origin/master) Remove console.log for license information
* | 5080afc Remove all http url in production
* |   f28e74b Merge branch 'develop'
|\ \
* \ \   75c5b90 Merge branch 'develop'
|\ \ \
* \ \ \   ec189e6 Merge branch 'develop'
|\ \ \ \
* \ \ \ \   eb79c75 Merge branch 'develop'
|\ \ \ \ \
* \ \ \ \ \   74631ef Merge branch 'develop'
|\ \ \ \ \ \
| | | | | | | * f7a4155 (light) Fix typo
| | | | | | | *   1d6c411 Merge 'develop' to 'light'
| | | | | | | |\
| | | | | | | |/
| | | | | | |/|
| | | | | | * | 3715f47 (develop) Finish GroupCard in Setting page
| | | | | | | * e606e68 (origin/light) Remove console.log for license information
| | | | | | | * 676774c Remove all http url in production
| | | | | | | * c1bef16 Fix api url error
Run Code Online (Sandbox Code Playgroud)

develop您可以看到我合并到后生成了太多行master。目前这不是一个大问题,但有一天它会变得太多的行阻碍我看到提交。

那么我有什么做错的地方吗?你们有遇到过这样的问题吗?你如何处理?


[编辑于2019/05/20]

感谢你们。我很感谢您的友善答复。

我想解决我的问题并把问题说清楚一点。我使用一些 GUI 工具,如源树,它显示 git 日志,如下所示。正如您所看到的,在此图中,具有相同存储库的复杂线路并不多。

那么,如果我想在命令行界面中显示类似的图表,是否可以?

git 登录源代码树

Von*_*onC 2

这就是为什么挤压和变基确实存在(对于您尚未推送的本地开发提交)。
这将有助于保持历史记录的线性,而不是 git log 在其单独的轨道中显示每个开发合并。

那么,如果我想在命令行界面中显示类似的图表,是否可以?

在命令行中,您可以通过添加以下内容来避免所有这些额外的行--no-merges

git log --decorate --oneline --graph --no-merges --all --branches
Run Code Online (Sandbox Code Playgroud)

  • @padawin 我同意。我提到壁球是帮助管理历史的工具之一(带有变基),但系统地应用它确实会对有用的历史有害。 (2认同)