合并自动填写一条消息,例如“将分支'功能'合并到分支开发中”。我总是将这些消息保持原样,这样我就可以看到合并的分支曾经被称为什么。这是唯一保证保留此信息的地方。如果您删除这些合并消息和分支,就是这样。你再也想不出是什么了。
我将为某些功能检查一个新分支,对其进行处理,然后切换回我分支的任何分支 - 通常是 master,但并非总是如此 - 然后是 git merge --no-ff <feature branch>。以下是我为动画装配角色的项目中的一些示例提交:
* c117bff Make squash joint scaling uniform
* 9eb9ac2 Fix eyelid control limit
* b50c967 Merge branch 'lipWeightImprovements'
|\
| * 6f98ea7 Smooth cheek weighting
| * fdf3f91 Improve lip weights
|/
* 4434223 Merge branch 'hair'
|\
| * a3f3f89 Add hair controls for front half of head
| * 22a6bf4 Add joints for and weight front hair pieces
|/
* c338c14 Move archived script into archive/scripted folder
注意两个合并分支 - 每个都说“合并分支'随便'”。这是 master 分支的一个独特方面,我不是很喜欢。如果您合并到 master,它不会将 master 放在合并消息中。如果我合并到了“发布”分支,它会将“发布”添加到这些消息中。尽管我后来删除了分支头,但合并消息告诉我这些分支曾经被称为什么。
这里有两点需要注意:
- 此图是使用
git log --all --decorate --graph --oneline 生成的(这些标志可以按任何顺序排列)。这组 4 个标志非常常见,以至于大多数人都给它们起了别名,而且我见过各种各样的别名。我将la 用于“列出所有”,它只是这4 个标志。我也有 las 和 lass 用于“短”和“超短”版本,而那些只是附加,例如-10 和 -25 标志,这是我工作的每台机器的不同数字。我喜欢las 显示略低于屏幕一半的列表,lass 显示略低于四分之一屏幕的列表。我也有 lb - 'list branch' - 这些版本,只是去掉了 -all 标志,所以它只列出了我所在分支的历史记录。
- 当您提交时,它会移动到该图的左上角。直接在左侧下方的提交行将是“第一父母”,这意味着通过当前分支的历史合并到的提交。所有合并 in 的分支总是从左边进来。 Git 甚至会在右边画一条穿过其他线的线,这样它在某些情况下可以环绕左边,所以合并 in 的分支总是从右边进来,然后合并到左边。通过这种方式,您可以随时了解您的历史记录。
如果你想要我的 la/lb 别名,只需运行以下命令:
git config --global alias.la 'log --oneline --graph --all --decorate'
git config --global alias.las 'log --oneline --graph --all --decorate -20'
git config --global alias.lass 'log --oneline --graph --all --decorate -8'
git config --global alias.lb 'log --oneline --graph --decorate'
git config --global alias.lbs 'log --oneline --graph --decorate -20'
git config --global alias.lbss 'log --oneline --graph --decorate -8'
这将为所有存储库设置它(通过您的 ~/.gitconfig 文件)。调整数字以适应口味。