我们有大量的中央 git 存储库,并使用分支来跟踪各种项目的工作。当一个项目完成时,我们合并到 master 并推送到 origin。
在开始一个新项目时,我想列出该存储库上的任何其他当前工作,作为开发人员的提示(例如,以便他们可以传达他们的发布计划)。git branch --all --no-merged origin/master
看起来很有希望,但显然它只列出了有提交的分支。从概念上讲,即使是新创建的“空”分支也表明了做一些工作的意图,所以这些不应该也列出来吗?
我怀疑这可能与分支和分支头之间的区别有关,虽然分支头指向它的起点,但没有什么可以合并的。但是由于合并被明确记录在历史中(对吗?)难道不应该将“空”分支识别为未合并吗?这可以做到吗?
一个明显的解决方法是在每个新分支中强制进行虚拟初始提交,但如果可能的话,我想避免这种情况。如果他们不想,开发人员似乎不应该推动他们未完成的更改(所以我希望中央存储库中的大多数分支在他们的项目完成之前都将保持空白)。
例子:
# Alice creates and pushes branch1
git clone $REPO clone1
git checkout -b branch1
git push -u --all
# ...continues development in her local repository...
# Bob wants to know if anybody is working on $REPO
git clone $REPO clone2
git branch --all --no-merged origin/master
# no output - he doesn't realize Alice is working in the same repository