【发布时间】:2012-08-23 23:42:39
【问题描述】:
我们在办公室使用监视器来显示有关我们 git 存储库中所有功能分支的信息。这样做的原因之一是我们知道功能分支何时“过时”(即它们的所有提交都已合并到 master)。我们使用:
git log --pretty=format:'%cd %s' --no-merges --abbrev-commit -n 1 --date=short master..origin/<branch>
最近,我们一直在尝试通过在将功能合并回 master 时压缩提交来保持更清晰的历史记录。缺点是我们当前识别“过时”分支的方法不再有效。
有没有 git 命令可以用来判断一个分支是否可以安全删除?
【问题讨论】:
-
如果你在 squash 合并中保存自动生成的提交消息,你可以从中检索提交哈希
-
为什么要使用
git merge --squash?一个简单的git merge将在master上生成相同的大提交。并且不会危及您的git logcommand。 -
@VonC 我们这样做只是为了让提交历史更简单。然后每个功能只有一个提交,因此很容易一目了然地看到为实现它所做的工作,如果我们需要删除特定功能,我们可以恢复单个压缩提交。如果人们知道合并后历史会被整理,那么他们在处理分支时更有可能进行小的增量提交。
-
@PirateRob 但是合并总是会在
master上产生 one 提交,所以我不理解这一点。 -
@PirateRob:做
git merge --no-ff,你将永远有一个合并提交。使用git log --first-parent,您只会在 master 上直接看到合并提交(没有合并到侧分支中)。此外,始终可以在合并之前以交互方式重新设置(整理)分支
标签: git