2

git初心者(または非常に単純な方法でしばらく使用した可能性があります)であり、この質問がいたるところにある場合は申し訳ありません。show-branch を実行すると、次のようになります。何が起こっているのかを正確に把握しようとしています。

http://www.gitguys.com/topics/git-show-branch-to-see-branches-and-their-commits/を読みましたが、まだいくつか質問があります。

  • m-development -> m-development~5 コミットの状況は? gitguys によると、それらはマージされています。これはマスターにマージされたことを意味しますか?
  • m-development - m-development~5 の場合、+ が付きます。gitguys では、これはそれを意味し、a はCommit is in the branch a-を意味すると言っていCommit is in the branch as a mergeます。に関して+、これは が master にあるかどうかを意味しますか? はいの場合、それがマージされたと確信しています。*マスターにマージされた場合、マスター列のように表示されるべきではありませんか?

任意の助けのためのthx

Thu Jul 25$ git show-branch
* [master] tmp merge
 ! [m-development] Adding comments view controller
--
-  [master] tmp merge
*  [master^2] updated with some debug and logged YES -> NO
*  [master^] project updates
*  [master~2] updated name
*  [master~3] updated here
*  [master~4] updated for is_liked values
*  [master~5] updated with message saving
*  [master~6] updated here
*  [master~7] updated with 401 instead of 200; explicit -X POST on curl calls
*  [master~8] updated
*  [master~9] initial checkin
 + [m-development] Adding comments view controller
 + [m-development^] Adding isFavorited / isLiked fields, filling in with initializers
 + [m-development~2] Adding favorite / unfavorite functionality
 + [m-development~3] Hooking up HTTP call for password reset
 + [m-development~4] Implementing login and signup
 + [m-development~5] Stubbing profile view controller
*+ [master~10] Updating authentication view controllers
Thu Jul 25$
4

1 に答える 1

2

に関する回答show-branch

show-branchOK、これが出力で起こっていることです。これについて理解する必要があるのは、各列がブランチを表し、各行がコミットを表すテーブルを表しているということです。したがって、テーブルの各セルは、コミットがブランチに存在するかどうかを表します。

元のポスターは尋ねます:

m-development[to]m-development~5コミットのステータスは? gitguys によると、それらはマージされています。これはマスターにマージされたことを意味しますか?

のコミットを表す行の の列m-developmentにスペース以外の文字がある場合master、 にmasterはそれらのコミットが含まれているため、ブランチは にマージされていmasterます。このような場合、show-branch出力は次のようになります (関連する部分は省略されています)。

*  [master~8]
*  [master~9]
*+ [m-development]

の出力はshow-branch、参照として渡されたすべてのブランチ、または引数が渡​​されない場合はすべてのローカル ブランチで共有されているコミットが見つかると停止するようです。共通のコミットが見つからない場合は、ブランチのすべてのコミットを出力するだけのようです。

したがって、上記の例では、 の tip/ commitが に含まれてshow-branchいることがわかります。したがって、ブランチ全体が にマージされたと結論付けることができます。headm-developmentmasterm-developmentmaster

ただし、これは出力がどのように見えるかではありません。master出力では、すべての行/コミットの列に空白が表示されますm-deveopment(わかりやすくするために省略されています)。

* [master]
 ! [m-development]
--
# skip some output of master for this example
*  [master~8]
*  [master~9]
 + [m-development]
 + [m-development^]
 + [m-development~2]
 + [m-development~3]
 + [m-development~4]
 + [m-development~5]
*+ [master~10]

Linux Kernel Git の公式ドキュメントshow-branch(強調は私のもの)によると:

コミットがI-thブランチにある場合、I-thインデント文字は+記号を示します。それ以外の場合は、スペースが表示されます

m-developmentしたがって、出力から、 のコミットはにマージされていないと結論付けることができますmaster

ブランチのマージ状況を確認するその他の方法に関する回答

これは、何が表示されているかという質問には答えません(後で説明できます)。ただし、 のコミットが にマージされているgit show-branchかどうかを知りたい場合は、単純に実行できます。m-developmentmaster

git log --oneline master..m-development

m-developmentこれにより、存在し、まだ存在していないすべてのコミットが表示されますmaster。コマンドが空の場合、すべてのコミットも既にm-development存在します。master

m-developmentが にマージされたかどうかを知りたい場合はmaster、次のこともできます。

git branch --merged master

出力にが表示m-developmentされている場合、それは にマージされたことを意味しmasterます。

于 2013-07-25T21:07:54.643 に答える