4

私はWindowsでgit(実際にはmsysgit)1.6.4を使用しています。ほとんどの場合、私はいくつかの機能ブランチで作業を行っています。時々、マスターに戻って、機能ブランチで行った特定のコミットを1つ選びたいと思っています。これは通常、機能がなくても意味のある便利なバグ修正であるためです。私のワークフローは次のようなものです-これが不必要に複雑な場合は、教えてください:-):

git checkout -b mycoolfeaturebranch
//ハックして、機能と1つのバグ修正を実装します(私がそれに取り組んでいる間)

git add file_with_bugfix.cpp
git commit-m"バグ12345を修正しました//バグ修正をコミットします
git checkoutmaster//マスターにホップオーバー
gitcherry-pick//バグ修正をマスターに持ち込む

この時点で、私は通常、機能ブランチに戻って機能の作業を続けたいと思っています。残念ながら、私のブランチ名は少し長くなる傾向があり('mycoolfeaturebranch'のように)、Windowsではgitブランチ名タブ補完がありません。

cd -Unixシェル(前のディレクトリにホップし、2つのディレクトリを切り替えるのに便利)のようなものはありますか?Agit checkout -は素晴らしいでしょう。:-)

4

2 に答える 2

4

$GIT/Documentation/RelNotes-1.6.2.txt から:

  • 「git checkout -」は「git checkout @{-1}」の省略形です。

試してみましたか?

于 2009-10-21T10:51:12.003 に答える
4

試す:

 git checkout @{-1}

git rev-parseから:

特別な構文@{-<n>}は、現在のブランチの前にチェックアウトされた th 番目のブランチを意味します。


Stefan Näwe彼の回答で述べたように:

" git checkout -" は " " の短縮形ですgit checkout @{-1}

Junio C. Hamanoが 2009 年 2 月にコメントしているように、構文@{-1}は 1.6.2 前後でしたが、完全に有効になったのは 1.6.2 以降のことです(強調は私のものです)。

@{-1} 構文は、このラウンドでハイパーアクティブになり始めるずっと前に追加されましたが、1.6.2 で追加され、「ブランチ名を使用できる場所ならどこでも使用できる」と宣伝されていますが、実際にはそうではありません

主張と現実を一致させるために、いろいろなところを修正してきました。
私は " git merge @{-1}" を動作させています。


(注: とは異なります。@{<n>}

その参照の n 番目の前の値を指定するために、中かっこのペア (たとえば{1}、 )で囲まれた序数指定を伴う接尾辞 @ が後に続く参照。 たとえば、 は master の直前の値であり、 は masterの 5 つ前の値です。 このサフィックスは、ref 名の直後にのみ使用でき、ref には既存のログ ($GIT_DIR/logs/) が必要です。{15}
master@{1}master@{5}

空の ref 部分を持つコンストラクトを使用して@、現在のブランチの reflog を取得できます。
たとえば、ブランチblablaにいる場合、@{1}は と同じ意味blabla@{1}です。

)

于 2009-10-21T10:41:11.840 に答える