2017-08-23 15 views
2

をマスター/原点からのカウントを間違ったコミットを示し、私は次のcommnandsを実行しました:「Gitのステータスが」私の地元のレポで

  • git checkout -b localBranch origin/master <は、リモートブランチを追跡するための新しいブランチ 「マスター」
  • を作成しましたgit status <は最新のようです
  • git reset --hard HEAD~30 <私はいくつかのビルドの問題に直面していました。これはビルドに失敗した場所です。他のいくつかの開発者がいくつかの問題をチェックしているようです。私は
  • git status <さて、これは私が、私はそれは私が30のコミットによって背後だことを示しているだろうと期待していた

起源/マスターから36の コミットの後ろだと言うが、それは36回のコミットを言います。何故ですか?併合されたブランチからのコミットもカウントするのですか、他に何か不足していますか?

注:リモートには複数のブランチがあり、マスターブランチにはほとんどマージされません。

+2

ニート質問です。マスターにはどのくらいのマージがありますか?おそらく6? –

+0

わかりません。多分。長い枝がたくさんある巨大な木です。 – Ramraj

答えて

6

git reset --hard HEAD~30を実行すると、HEADの30番目の親に戻りました。しかし、分岐を使用した場合、HEADHEAD~30の間に30以上のコミットがある可能性があります。例えば

* 501fe6f (origin/master) Merge branch 'master' into HEAD 
|\ 
| * 24c80b0 foo 
* | 69d4fad foo 
|/ 
* 93d4461 (HEAD -> master) foo 
* 566ba14 foo 
* 97f38e0 old 

ローカルmasterorigin/master~2ですが、それらの間の3つのコミットがあります。 git status3 commits behindです。

+1

お返事ありがとうございます。上の同じツリーを同じ場所に置いて考えてみましょう。しかし、**私はそのブランチで24c80b0の後に19回コミットしました**。今、マスターブランチのステータスは「22コミット」となるでしょうか?はいの場合、理由を説明できますか?なぜなら、私は 'HEAD〜2をリセットしました 'と思っていましたが、合併されたブランチからのコミットを気にしない' 22のコミットの背後に'表示されます(coz、合併されたブランチは一時的なコミットがたくさんあります。 – Ramraj

+1

'git status'はローカルブランチとリモートトラッキングの間のコミット数を表示します。関係のないブランチが24c80b0から始まっている場合、そのブランチからのコミットは使用されません。 24c80b0で始まるブランチでコミットしたが、 'master'でマージされている場合、これらのコミットはカウントされます。 –

+1

ええと。私は上記のツリーにあるように、マージされたブランチについてのみ質問していました。したがって、上記の私のコメントのシナリオでは、ステータスは 'HEAD〜2 'のためだけにリセットされたにもかかわらず、' 22コミットの後ろに'でもあります。私は正しい? – Ramraj

2

それはそれがないマージされた枝からもちろん

をコミットを数えるん。

origin/masterから届く可能性があり、ローカルmasterに到達できないすべてのコミットは、あなたが持っていないコミットです。

origin/mastermasterにマージすると、それらのうち36個(ブランチを含む)がorigin/masterにマージされます。

関連する問題