多数の中央gitリポジトリがあり、ブランチを使用してさまざまなプロジェクトの作業を追跡しています。プロジェクトが終了すると、マスターにマージしてオリジンにプッシュします。
新しいプロジェクトを開始するとき、開発者へのヘッドアップとして(たとえば、リリース計画を伝えることができるように)、そのリポジトリにある他の現在の作業をリストしたいと思います。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