【git reset 】いまいち分かっていなかったresetを理解する【commitやpushの取り消し】
- 1. 【git reset 】いまいち分かっていなかったresetを理解する【commitやpushの取り消し】の全体の流れ
- 2. git resetとは
- 3. HEADとは?
- 4. git reset方法
- 5. git reset
- 6. git reset ファイル名
- 7. git reset コミットハッシュ値
- 8. git reset オプション
- 9. git reset –soft HEAD@{1}
- 10. git reset –mixed HEAD@{1}
- 11. git reset –hard HEAD@{1}
- 12. 直前のコミットをresetする
- 13. コミット全てをresetする
- 14. ローカルブランチをリモートのプルブランチのプルリク中と同じ状態にする方法
- 15. git resetを取り消す
【git reset 】いまいち分かっていなかったresetを理解する【commitやpushの取り消し】の全体の流れ
【git reset 】いまいち分かっていなかったresetを理解する【commitやpushの取り消し】を行うには次の流れになります。
- git resetとは
- git reset
- git reset ファイルやオプションについて
git resetとは
分かりやすく言うとGitの「commitやpushの取り消し」を行うコマンドです。
HEADを過去に移動することでgit resetすることができます。
resetは二種類の機能があります。
- インデックスをリセットする
- HEADを変更する
スポンサードサーチ
HEADとは?
HEADとは現在、自分がいる位置のことです。
ブランチの最新のコミット位置になります。
HEADを前のindexに移動させることで、resetができます。
git reset方法
- git reset:
- git reset ファイル名:
- git reset コミットハッシュ値:
- git reset オプション:
スポンサードサーチ
git reset
「ステージングをリセット」することができます。
「git add」でステージエリアに移動しているファイルをリセットすることができます。
git reset ファイル名
指定したファイルとステージングから削除することができます。
git reset ./reset_sample.php
ファイルパスを指定して、git resetすると「指定したファイル」だけステージエリアからリセットされます。
スポンサードサーチ
git reset コミットハッシュ値
現在のブランチを指定したコミットをリセットすることができます。
git reset 0hoge1hoge2hoge3hoge4hoge5hoge6hoge7hoge
コミットハッシュ値でresetすると、そのコミットでワーキングツリーからステージングエリアへ移動した内容をリセットします。
git reset オプション
gitのresetオプションには次の3つがあります。
その指定した場所に現在のブランチを指定した場所に戻します。
- –soft
- –mixed
- –hard
git reset –soft HEAD@{1}
HEADが対象です。
※@{1}はindex番号1という意味です。
HEADが対象です
commitだけresetすることができます。
addはresetされていません。
git reset –mixed HEAD@{1}
HEAD、ステージが対象です
commitとaddがresetすることができます。
よってaddする前に戻りますが、ローカル環境の変更は残ったままです。
※@{1}はindex番号1という意味です。
git reset –hard HEAD@{1}
HEAD、ステージ、作業ディレクトリが対象です
commit, add, ローカル環境の変更が全てresetされます。
ローカル環境の変更を残しておきたい場合はうっかりしないようにしましょう。
※@{1}はindex番号1という意味です。
直前のコミットをresetする
ハッシュ値を指定してresetする
// ハッシュ値を指定してresetする
git reset --soft ハッシュ値
// ファイル変更後ステージして、コミットする
git add -A
git commit "コミットメッセージ"
HEADの状態にresetする
// HEADの状態にresetする
git reset --soft HEAD^
// ファイル変更後ステージして、コミットする
git add -A
git commit "コミットメッセージ"
ブランチの最新のコミット位置にresetします。
git reset HEAD^
コミット全てをresetする
コミット全てをresetする
// インデックスを全てresetする
git reset --mixed
// ファイル変更後ステージして、コミットする
git add -A
git commit -m "コミットメッセージ"
ローカルブランチをリモートのプルブランチのプルリク中と同じ状態にする方法
ローカルブランチをリモートのプルブランチのプルリク中と同じ状態にする方法
こちらはあくまでresetコマンドでHEADを移動させる方法なので、自信のローカル環境でpushしてプルリクしているケースです。
なので、最後にpushしたHEADへ移動してリセットを行います。
// ログ確認
git reflog
// originへpushした時のxxxにresetする
git reset --hard HEAD@{}
別の方はpushした内容であれば、コミットを自分のブランチへ取り込む方法でpushした状態とローカルを一致させることができます。
git reflogでGitでの履歴確認
git reflogでGitでの履歴確認
gitの過去の履歴に行ったコマンドの履歴を確認することができます。
// ログ確認
git reflog
git reflogでGitでの履歴が確認できます。
戻したいところのでインデックスを確認してresetコマンドをたたきます。
git reset --hard HEAD@{1}
git resetを取り消す
git resetを取り消す
git resetでgit resetコマンド操作も取り消すことができます。
// resetを行う
git reset
// 最後に行ったresetコマンド自体を取り消す・
git reset --hard HEAD@{1}