2017-06-15 9 views
0

git-status docsのステータスコードと意味は次のとおりです。同じ意味がいくつかのステータスコードに付いています。私は手動でツリー全体を作成する必要はありませんが、まだstatuses.getMeaning(x, y)のようなAPIを介してツリーのクイック検索を可能にするこのデータを保存する方法はありますか?git-statusの構文解析

X   Y  Meaning 
------------------------------------------------- 
      [MD] not updated 
M  [ MD] updated in index 
A  [ MD] added to index 
D   [ M] deleted from index 
R  [ MD] renamed in index 
C  [ MD] copied in index 
[MARC]   index and work tree matches 
[ MARC]  M work tree changed since index 
[ MARC]  D deleted in work tree 
------------------------------------------------- 
D   D unmerged, both deleted 
A   U unmerged, added by us 
U   D unmerged, deleted by them 
U   A unmerged, added by them 
D   U unmerged, deleted by us 
A   A unmerged, both added 
U   U unmerged, both modified 
------------------------------------------------- 
?   ? untracked 
!   ! ignored 
------------------------------------------------- 
+0

ちなみに、回答後、本当にあなたの質問が本当にどういうものか分かりません。これは2つの別々の 'git diff'コマンドの結果を要約していることに注意してください。 – torek

答えて

1

これらはあいまいではありません。参照するには2つの方法があります

/これを表示:

  • の結合を解除しまし状態が存在する場合、あなたはその(git ls-files --stage)を確認することができますので、ゼロ以外のステージ番号がある場合にのみ。これにより、最終的な目標に応じて役に立つ可能性のあるすべてのインデックスエントリも表示されます。

  • あるいは、2つのマージされていない状態が、すべては、少なくとも一つのUを持って、git statusから--porcelain出力にそれを観察します。 AADDでない2つの状態は、マージ非進行中のいずれの場合でも発生しません.XがAの場合、Yは必ずスペース、M、またはDです。 YがDの場合、Xは必ずスペースまたはMARC(決してD)のいずれかです。

+0

あなたの返信ありがとう!私はちょうど簡単に検索可能な方法でこの状態コードのテーブルをどのように構成できますか(願わくば)それぞれのコードを入力する必要はありません。 – maxhallinan

+0

'[MARC]'タイプのアイテムを展開して、大きなテーブルで終わることができます。各列には9つの可能なコードがあります(スペース、M、A、R、C、D、U、?、!)。一方、あなたは81要素の行列を与える組み合わせ(常に2つか2つ)でX(または 'to_value(X)')とY(または 'to_value Y) ')、またはcombine(X、Y)(combine()関数はあなた次第です。プログラミング言語には意味をなさない)を使用してください。 – torek

+0

'!'と '?'の事例をあらかじめ分割しておけば、1列に7つのコードが残っているので、テーブルや行列には49のエントリがあります。それらの中には決して起こりえないものがありますが、これは返品が減る点のようです。あなたのプログラミング言語が簡単な辞書検索を持っていれば、最小限の行列を構築して、 'meanings [X]'が有効なXと '[Y]'項目にのみ存在する 'meanings [X] [Y]そのマップ内では、指定されたXに対して有効なYのみが存在します。 – torek