web-dev-qa-db-ja.com

Gitチェックアウト-HEADへの切り替え

ある時点で、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に戻る方法はありますか?

履歴コミットを「ジャンプ」する安全な方法は何ですか?

20
asdfgh

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
    
18
Sajib Khan