2016-10-27 10 views
1

最後のブランチはgit checkout -でチェックアウトできますが、最後のブランチを調べてチェックしない方法がありますか?gitで最後にチェックアウトされたブランチを見つける方法

EDIT:

git reflog | grep -i "checkout: moving"|head -1|cut -d' ' -f6 

しかし、私は直接のシンプルなコマンドがあるかどうかを知りたいと思った: 私はすでに私が使用できることを見出しました。私はこの必要性を反映するために質問を更新しています。申し訳ありませんが十分に明確ではない

+0

'git branch - 'または 'git -n checkout - 'のようないくつかのコマンドは、最後のブランチの出力を与え、変更を加えません。 – Champ

答えて

3

あなたのサンプル出力は、それが十分に明確になります。

git rev-parseコマンドは、一度にこれを行うには、参照のルックアップ構文と組み合わせることができます。

$ git rev-parse --symbolic-full-name @{-1} 
refs/heads/stash-exp 
$ git rev-parse --abbrev-ref @{-1} 
stash-exp 

the gitrevisions documentation@{-N}構文について説明していること。

$ git rev-parse --abbrev-ref @{-2} && echo ok || echo fail 
master 
ok 
$ git rev-parse --abbrev-ref @{-3} && echo ok || echo fail 
ok 

そして、もちろん、あなたが名前を必要とするかもしれないほとんどの場所で、あなただけの@{-1}構文を使用することができますだけでなく何のN番目の前のブランチが存在しない場合、rev-parseは黙っ全く何も出力しないことに注意してください直接。

1

git reflogあなたが使いたいものです。この中で、あなたは見つけることができます:あなたがたもの

  • を最後にコミットされた(「コミット」と表記)
  • あなたは
  • あなたがしました(「チェックアウト」と表記)チェックアウトしてきた何
  • 引っ張られた(「プル」と表示されます)

あなたがチェックアウトしたものはここで重要です。特定のブランチを見るとき、reflogは "checkout"と書かれたフォーマットを使用し、 "AからBへ移動"を指定します。

"checkout:moving"という単純なgrepは、訪問したブランチのリストを表示します。最後のものが一番上にあります。完全性について

全コマンド:(git reflog | ...によって生成されるような)

git reflog | grep -i "checkout: moving" 
+0

私はすでに使用できることを発見しました:git reflog | grep -i "checkout:moving" | head -1 | cut -d "-f6。しかし、直接の簡単なコマンドがあるかどうかを知りたかったのです。私はこの必要性を反映するために質問を更新しています。申し訳ありませんが十分に明確ではありません。 – Champ

関連する問題