Git

【git】SourceTreeで解説!間違えたときのgitコマンドとやり方

git やり直したい時のコマンドまとめ

ローカルリポジトリ・リモートリポジトリを作って、一連の流れでファイルの管理は出来るようになりました。
SourceTreeというGUIを使っているので、黒い画面はほとんど触ることなく作業ができ便利なのですが、まだ使いこなせていないgit。
今回は、削除とか戻したい時とか、いろいろあるコマンドのことをまとめてみました。オモシロイヨ!git!!

通常の作業フローで起こり得る、『失敗したーッ!!』

  1. 1.git add|インデックス化ステージング
  2. 2.git commit|コミット
  3. 3.(更新管理リポジトリへ)git push|プッシュ
  4. 4.(本番環境で、更新管理リポジトリから)git pull|プル

上記で通常の作業は完了です。が、その作業中にミスなどが発生することがあります。
gitはこんなタイミングでミスがある

  • ●ファイルをaddしないでcommitしちゃった
  • ●commitのコメントを間違えちゃった
  • ●commitを取り消したい
  • ●pushしたけどcommit取り消したい

ピンチを救う、各種修正するコマンドたち

これらのミスを修正するコマンドがこちら。

ミスをなんとかするコマンドがこれ

  • ●ファイルをaddしないでcommitしちゃった
    • ・・・直前のcommitをやり直す|git commit --amend
  • ●commitのコメントを間違えちゃった
    • ・・・直前のcommitをやり直す|git commit --amend
  • ●commitを取り消したい
    • ・・・commitの取り消し(以前の状態に巻き戻し)|git reset
  • ●pushしたけどcommit取り消したい
    • ・・・commitを取り消す、commitをする|git revert

ここからは、SourceTreeの画面で使い方を解説します。

直前のコミットをやり直す・修正する|git commit --amand

上部メニューのコミットボタンをクリック(インデックスはしなくてOK)

直前のコミットを修正するので、ファイルはインデックス(add)しなくてOKです。
そのまま、上部のコミットボタンをクリック。

1.commitの修正したい時はここをクリック

『最後のコミットを上書き(Amend)』にチェック

コミットするためのダイアログ画面が出ます。
左下にある『最後のコミットを上書き(Amend)』 のチェックボックスにチェックを入れると、
確認メッセージが出ますので『Yes』を選択。

2.最後のコミットを上書き(Amend)にチェック

コミットのコメントを入力して完了

チェックボックスにチェックが入っていることを確認し、新しいコメントを入力します。
最後に、右下の『コミット』ボタンをクリック。

3.コミットメッセージを編集orファイルを追加
するとメッセージが出ます。
リモートサーバーにpush済のコミットの修正は問題が発生するよっていう警告です。
push前ならOKですが、push後ならcommit --amendではなくrevertが良いです。その話はまた以下で。
今回はpush前なので『OK』押します。

4.push前のコミットかどうか、最終確認
5.コメント書き換わった!
以上で完了。書き換わってます。

コミットの取り消し(以前の状態に巻き戻し)|git reset

戻したいコミットの場所で右クリック!

  • reset : 現在のブランチをこのコミットまでリセット
  • revert : コミットを打ち消し・・・

今回は取り消したい・戻したい(リモートに未push)ので、『現在のブランチをこのコミットまでリセット』を選択します。

1.戻したいコミットの場所で右クリック!

使うモード(どこまで戻すか)を選ぶ

resetにも『どこまでリセットするか』という種類があります。

2.どこまで戻すか・リセットするか、を選ぶ

  • Soft :コミットを取り消し(作業ツリー・インデックスはそのまま)
  • Mixed :コミット・インデックスを取り消し(作業ツリーはそのまま)
  • Hard :コミット・インデックス・作業ツリーを取り消し

Hardを選べば、編集したファイルも編集前の状態に戻ります。ベンリ!!
今回はHardを選んで、『OK』をクリック。

(警告が出るけど)OK押せば完了!

『何が起こるかわかっていますね?』というドキドキする念の押され方をしますが(苦笑)、知っとるがなー!と『Yes』をクリックで完了です。

3.警告画面が・・・
4.コミットなくなった!完了

コミットを取り消すコミットを作成|git revert

取り消したいコミットの場所で右クリック!

  • reset : 現在のブランチをこのコミットまでリセット
  • revert : コミットを打ち消し・・・

今回は(例えばリモートにpushしてしまった後などで)コミットを消すことはできないので、対象のコミットを打ち消すというコミット=打ち消します。そこで『コミットを打ち消し』を選択します。

1.右クリックでメニュー出して、revert!

すぐに打ち消しコミットの確認画面が出ます。

打ち消すコミットを作成して良いか?という確認画面が出ます。
ここで『Yes』を選択すると、コミットがされて作業が終了します。

2.打ち消しコミットの確認

完了!revertコミットがされてます

3.Revertされたコミットが増えた!完了

コマンドの使うタイミングが分からなかったけど、図で分かった!

通常使うコマンドはイメージできたんだけど、この画像がすごく分かりやすくて、これを元に他のコマンドもまとめてみようと思ったのが最初です。この図、本当に素敵。
http://blog.osteele.com/posts/2008/05/my-git-workflow

  • この記事を書いた人

サオリサン

WEB制作のディレクター・制作・運営支援をしてます(フリーランス&会社員)。アクセス解析してサイト改善するのが好き。

-Git