2017-07-10 16 views
0

私はまだGitとSourcetreeの作業をしていますが、私の現在の支店の後ろにある私の支店が2番であることを理解できていません。Git Sourcetree Master 2の後ろ

私は現在のブランチにマスターをマージしようとすると、それは賢明であると言います。

enter image description here

誰もが、私はそれから、日付と作業までのマスターを得ることができますどのように、私はまだ良く、このような状況になったとどのように私に説明できますか?

おかげ

編集:だから私は、チェックアウトはマスターブランチは、以下尋ねたと引っ張られ、それが最後のいくつかのコミットを行っているように見えるため以外の日付にそれを持っているように思わなかったので。なぜ誰が知っていますか?

enter image description here

+0

私はあなたの特定のGUIを使用していませんが、最初のグラフがあなたに「分離された頭」の状況を示しているように見えます。ここでは、あなたが作るコミットに名前はありません(まあ、 "HEAD"以外の名前はありません)。あなたは枝を変えるときに頭を変えて忘れるでしょう。 *それらを覚えておくには、名前を付けてください。 – torek

+0

ええ、それは一点で頭を言う。しかし、私はマスター/起源に対してそれをチェックしていると思った。私がコミットし、もはやマスターブランチに反対していた時、ちょっと混乱しました。 –

答えて

1

これはmasterorigin/masterの背後にある2回のコミットであることを意味しています。 origin/masterがあなたのmasterコミット後のマージコミットにあることがわかります。それは2のうちの1つです。もう1つは、マージの「反対側」にあります(「バンドルの設定...」)。

他の誰かがマスターに変更をプッシュしました(他のブランチではマージの形で)。変更をoriginから取得しました。ローカルブランチの参照origin/masterが更新されましたが、masterにまだマージされていません。

masterをチェックアウトしてorigin/mastermasterではなく)とマージすると、masterを更新できます。またはマスター上でpullを実行することによって(トラッキングが予想どおりに設定されていると仮定します。予想される「2後」メッセージが表示されているためです)。他の方法もありますが、それはこの状況に最も合ったものです。

UPDATE

あなたがこれをしなかったときに、いくつかのコミットは、お使いのディスプレイから消えるように見えたようです。これは、現在チェックアウトしているものの履歴を表示するようにディスプレイが設定されている可能性が最も高いです。 (これはgit logを実行するためのデフォルトになりますが、私はSourceTreeが何を表示するかを判断しません。ほとんどの場合、コマンドラインをほとんど使用しています。スクリーンショットから、コミットリストの上にドロップダウンコントロールが表示されます。表示されているものを制御する可能性があります)。

これで、「コミットされていない変更」があることがわかりましたので、ちょっと注意してください。コミットとは違って(は本当にが失われます)、これらのコミットされていない変更を失うのを防ぐために何もしません。だから、それ以上のチェックアウトを行う前に、あなたはそれらの変更が何であるか、そしてそれを保管すべきかどうかを知っているべきです。もしそうしなければならない場合は、チェックアウトを行う前にコミットまたは隠しておくべきです。 (コマンドラインで、gitはこれらの変更を失うようなチェックアウトに抵抗するだろうが、SourceTreeが何をするかについては話すことができない。)

とにかく、「ログアウトバグの修正」のようなコミットは他のブランチで作成されたもの。そのブランチをチェックアウトすると、それらのコミットが表示されます。または、そのブランチ(または--all)を表示するように表示設定を変更すると、それらを表示できるはずです。

reflogを使用してチェックアウトした履歴を確認できます。おそらく、メインのreflogの3番目のエントリは、質問で1番目のスクリーンショットを作成するときにチェックアウトしたものです(私が知っている以外のチェックアウト(または同様の操作)を行っていない限り)。

+0

。お返事をありがとうございます。大変感謝しています。だから私はマスターをチェックアウトし、私に戻って元に戻っているようだが、今のすべてのコミットブランチユーザログイン上のコミットを行ったようなプルを行った。彼らが迷子になっても大丈夫ですが、大部分はテストコミットでした。しかし、それがなぜであるか知ることは良いでしょう。 –

+0

彼らは行っていません。デフォルトの 'log'出力は、現在チェックアウトされているものの履歴のみを表示します。だから私は、あなたの質問からのスクリーンショットで、あなたは 'master'以外のものがチェックアウトされていることを推測しました。もう一度チェックアウトすると、そのコミットが再び表示されます。 (あなたが "何でも"チェックアウトしたときには、 "何でも"の歴史の中にあるので、あなたはまだマスターと原点/マスターを見たことに注意してください) –

+0

ああ大丈夫です。それはいいですね。だから私は今チェックアウトするのですか?私は、私が既にチェックアウトされており、Origin/Masterと最新の状態になっていると言いますので、私が行っている支店をチェックアウトすることはできません。申し訳ありませんが、私はすべての作業が完了したら、正解としてマークします。 –

関連する問題