回答:
git checkout master
トリックを行う必要があります。2つのバージョンに戻るには、のようgit checkout HEAD~2
に言うことができますが、その時間に基づいて一時的なブランチを作成した方がいいので、git checkout -b temp_branch HEAD~2
git log
ます。つまり、そのポイントに対して相対的に表示されますか?マスターをチェックアウトするときに、ポインターをマスターブランチの最新バージョンに移動しますか?
git checkout
HEADを移動する方法です。HEADを切り離したとき、その指定されたコミットを直接指すようにしました。もう一度マスターをチェックアウトすると、マスターを指します。(そしてgit log
実際に多くの多くのコマンドは実際にはリビジョン範囲をとり、それはデフォルトでHEADになります。)
特定のコミットにチェックアウトすると、gitは分離ブランチを作成します。だから、あなたが呼び出す場合:
$ git branch
次のようなものが表示されます。
* (detached from 3i4j25)
master
other_branch
マスターブランチヘッドに戻るには、もう一度マスターブランチにチェックアウトする必要があります。
$ git checkout master
このコマンドは、切り離されたブランチを自動的に削除します。
git checkout
動作しない場合は、ブランチ間で競合する変更されたファイルがある可能性があります。コードを失うのを防ぐには、gitはこれらのファイルを処理する必要があります。次の3つのオプションがあります。
変更を隠します(後で変更できます):
$ git stash
分離されたブランチをリセットする変更を破棄します。
$ git reset --hard
以前の変更で新しいブランチを作成し、それらをコミットします。
$ git checkout -b my_new_branch
$ git add my_file.ext
$ git commit -m "My cool msg"
この後、masterブランチ(最新バージョン)に戻ることができます。
$ git checkout master
これは私にとってはトリックでした(私はまだマスターブランチにいました):
git reset --hard origin/master
私はgitを深く掘り下げ始めたばかりなので、正しく理解しているかどうかはわかりませんが、OPの質問に対する正しい答えは、次のgit log --all
ようなフォーマット仕様で実行できるということですgit log --all --pretty=format:'%h: %s %d'
。これにより、現在のチェックアウト済みバージョンがとしてマークさ(HEAD)
れ、リストから次のバージョンを取得できます。
ちなみに、このようなエイリアスを.gitconfig
少し良い形式で追加すると、次のように実行できますgit hist --all
。
hist = log --pretty=format:\"%h %ai | %s%d [%an]\" --graph
相対バージョンについては、この投稿を見つけましたが、それは古いバージョンについてのみ話しているため、新しいバージョンを参照することはおそらくないでしょう。
以前のバージョンに戻ると、
$ git checkout HEAD~2
Previous HEAD position was 363a8d7... Fixed a bug #32
この状況でも、このコマンドで機能ログ(ハッシュ)を確認できます。
$ git log master --oneline -5
4b5f9c2 Fixed a bug #34
9820632 Fixed a bug #33
...
master
別のブランチ名に置き換えることができます。
その後、チェックアウトすると、機能に戻ることができます。
$ git checkout 4b5f9c2
HEAD is now at 4b5f9c2... Fixed a bug #34
Git 2.23以降(2019年8月)ではgit switch
、混乱を招くgit checkout
コマンドの代わりにを使用することをお勧めします。
古いバージョンに基づいて新しいブランチを作成するには:
git switch -c temp_branch HEAD~2
現在のマスターブランチに戻るには:
git switch master
よりエレガントでシンプルなソリューションは、
git stash
ブランチの最も再送信されたローカルバージョンに戻り、変更をstashに保存するので、このアクションを元に戻す場合は次のようにします。
git stash apply
git checkout master
まさに私がブランチから切り替える方法です。つまり、以前のバージョンをチェックアウトすると、本質的にブランチが作成されるということですか。