メニューを閉じる

テクノデジタルグループ

メニューを開く

2018.07.05

開発環境・ツール

Git commit を間違えた時の対処法まとめ

こんにちは、新人のNです。
最近ベッド脇の観葉植物(パキラとフェ~なんとか)がもの凄い勢いで成長していて、
寝室が森になりつつあるのが不安です(笑)。

ところで先月末、業務でGitBushを使っていたのですが、
自分は油断するとすぐにコミットを間違えるのです!

そこで、Git commit を間違えた時の対処法をまとめてみました

紹介するのは次の通り↓
1.git commit --amend
2.git reset --soft
3.git reset --hard
4.git stash

.元のコミットを無効にして、(ファイル追加など処理をし、)新たにコミットする。(元コミットは取り消されない)
.ワークディレクトリの内容はそのまま残し、コミットだけを取り消す。(add後の状態に戻る)
.ワークディレクトリの内容を書き換え・コミットの取り消し。(addしたファイルも消える)
.変更内容を内部に保存して、変更履歴を消す。

それでは見ていきましょう

git commit --amend

コミット後、あのファイルを入れ忘れた!という時に使えます。
直前のコミットを無効にして、ファイルを追加した後コミットし直します。
(コミットは上書きされるわけではないので、コミットIDが変わります。)

操作は以下の通り↓
.「git log」:直前のコミットで入ったファイルを確認
.「git add」:入れるはずだったファイルをadd
.「git commit --amend」:直前のコミットをやり直す
.「git log」:ファイルが追加されているのを確認

 

 

git reset --soft

コミット自体を取り消したい時に使います。
「git log」からコミット履歴が消されます。
ワークディレクトリからファイルが消えるわけではなく、add後の状態に戻りぎます。

操作は以下の通り↓
.「git log」:直前のコミットを確認
.「ls」:ワークディレクトリにファイルがあることを確認
.「git reset --soft HEAD^」:直前のコミットを消去(「HEAD^」は一つ前の意味)
.「git log」:直前のコミットが無くなっていることを確認
.「ls」:ワークディレクトリにファイルはそのまま残っていることを確認

 

git reset --hard

間違ったファイルをaddしてしまった時に使えます。
コミットを取り消し、ワークディレクトリ内のファイルも消えるため、addする前の状態に戻ります。

操作は以下の通り↓
.「git log」:直前のコミットを確認
.「ls」:ワークディレクトリのファイルを確認
.「git reset --hard HEAD^」:直前のコミットを消去
.「git log」:直前のコミットが無くなっていることを確認
.「ls」:直前にコミットしたファイルも無くなっていることを確認

 

git stash

始めにブランチを切るのを忘れたまま作業してしまった時に使えます。
変更してしまった今の環境の変更内容だけを保存して、
予定していたブランチに切り替えてから、保存した変更をそのブランチに戻す、ということができます。

操作は以下の通り↓
.「git status」:現環境で変更がされていることを確認
.「git stash」:変更内容を内部へ保存・現環境での変更を消去
.「git status」:変更が消えたことを確認
.「git stash list」:スタッシュでの変更履歴を表示、該当スタッシュのスタッシュIDを確認
.ブランチを切る
.「git stash apply “スタッシュID”」:スタッシュで保存したものを戻す
.「git status」:該当ブランチで変更されていることを確認

 

ありがとうございました~


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事