2012-01-27 9 views
1

私がcommitIDからチェックアウトすると、gitはNO_BRANCHデタッチ状態になります。そこで私がブランチ名を取得するために使用するJGit APiがコミットを返しています。ですから、JGit APIでは、このコミットが行われたブランチを見つける方法が必要です。デタッチ分岐モードを使用JGitはcommitIDが作成されたブランチを取得します

答えて

1

(すなわちコミットからチェックアウト)は本当にお勧めできません。すべてのhttp://sitaramc.github.com/concepts/detached-head.html

まず、私はあなたがコミットSHAを取得する方法がわかりません。通常は、ブランチをスキャンすることによってコミットを検出します(たとえば、ログを使用して)。ですからあなた自身に尋ねるべき質問は、コミットIDを取得する方法です。このデータからブランチを見つけることができます。

具体的な問題として、RevCommitオブジェクトに基づいてブランチ名を見つける方法があると思います。しかし、あなたはそれが自然ではないことを知るべきです。

上記のリンクをたどるとGitがどのように構築されているのか、他のデータからコミットを得るのが目的であるのが分かります。

関連する問題