ある時点で、1つのことが機能しなくなったことを発見したときに、私は自分のプロジェクトを行ってきました。コードが正常に動作しているときにコードの状態を調べる必要があったため、git checkoutを使用することにしました(何かをチェックアウトしたかったため)。そして、私はやった
git checkout SHA
私がHEADに行けないポイントに戻っている間に数回、出力は次のとおりです:
git checkout SHA-HEAD
error: Your local changes to the following files would be overwritten by checkout:
[list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting
私は何も変更していないと確信しています。コマンド
git checkout master
同じ出力が得られます。
HEADに戻る方法はありますか?
履歴コミットを「ジャンプ」する安全な方法は何ですか?
stash
(変更を一時ボックスに保存)してから、master
ブランチHEADに戻ることができます。
$ git add .
$ git stash
$ git checkout master
コミット前後のジャンプ:
特定のcommit-sha
に移動します。
$ git checkout <commit-sha>
ここでコミットされていない変更がある場合は、新しいブランチをチェックアウトして、追加、コミット、現在のブランチをリモートにプッシュできます。
# checkout a new branch, add, commit, Push
$ git checkout -b <branch-name>
$ git add .
$ git commit -m 'Changes in the commit'
$ git Push Origin HEAD # Push the current branch to remote
$ git checkout master # back to master branch now
特定のコミットに変更があり、変更を保持したくない場合は、stash
またはreset
を実行してからmaster
(または他のブランチ)にチェックアウトできます。
# stash
$ git add -A
$ git stash
$ git checkout master
# reset
$ git reset --hard HEAD
$ git checkout master
特定のコミットをチェックアウトした後、コミットされていない変更がない場合は、master
またはother
ブランチに戻ります。
$ git status # see the changes
$ git checkout master
# or, shortcut
$ git checkout - # back to the previous state