gitで過去に戻りたい

6,485 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,485
On SlideShare
0
From Embeds
0
Number of Embeds
3,259
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

gitで過去に戻りたい

  1. 1. GITで過去に戻りたい
  2. 2. このスライドの目的 •  誤操作の取り消し方法をまとめた。•  gitでできることを知っておく •  どこまでがヤバいのか?どこまでは問題無いのか?を知る
  3. 3. コミット漏れ、ちょっとした編集ミス hoge.txtとfuga.txtを編集した 正解 $ git add hoge.txt fuga.txt$ git commit -m "大事な変更をしました"ミス$ git add hoge.txt$ git commit -m “大事な変更をしました”   //ここで足りない事に気がついた$ git add fuga.txt$ git commit -m “大事な変更をしました(その2)"やりたいこと:commitが1回であったようにしたい
  4. 4. 解決策1 新たにコミットを作る $ git add fuga.txt$ git commit --amend前にしたcommitとは別に、新しい歴史を作り、そこにcommitした状態 解決策2 コミットを取り消してから、改めて作業する $ git reset --soft HEAD^コミット前の状態に戻るので、改めて作業を行う 解決策3commitをまとめて1つにする $ git merge –squash (ブランチ名)
  5. 5. コミットメッセージをミスった 書いてはいけない事を書いてしまった$ git commit -m "犯人はヤス”解決策 このまま何もせずに $ git commit –amend –m “犯人は一体誰なのか!?”とすれば、新たにコミットメッセージを登録できる
  6. 6. この編集、全部いらない。 特定のファイルを、最後にcommitした状態に戻したい解決策1 特定のファイルを戻す$ git checkout -- readme.txt解決策2commitごと取り消して、ファイルの中身もあの頃に戻る$ git reset –hard HEAD^解決策3編集はしたけど、addもcommitもしてない場合 $ git stash$ git stash clear※この方法は一般的でないし、ログに残らないのでやらない方がいい。
  7. 7. よくわからないけど戻りたい $ git reflog今までのHEADの移り変わりが出てくる。指定した点まで戻る。 $ git reset --hard HEAD@{1}例新しい機能追加なのにgit commit --amendしてしまった 解決策:$ git reset HEAD@{1}この場合reflogにはa0c1e2g HEAD@{0}: reset: moving to HEAD@{1}と記載される。
  8. 8. 注意 これらの動作はローカルリポジトリなら問題無い。 リモートリポジトリでは、新たにcommitする方が良い。 複数人で使っているリモートリポジトリでの作業は危険。応相談。参考 リモートのcommitを削除 $ git reset HEAD^ --hard$ git push origin -fあるいは $ git push -f origin HEAD^:master
  9. 9. まとめ * gitの流れに沿っていれば、やり直しができる * それでも、削除する系の動作には注意しよう * リモートの扱いには注意
  10. 10. 参考文献 •  Git初心者が絶対に覚えておくべきコマンド - idesaku blog•  http://d.hatena.ne.jp/idesaku/20091106/1257507849•  【派閥別】Gitのコミットを間違えたときの対処法まとめ - 本当は怖 い情報科学 •  http://d.hatena.ne.jp/keisukefukuda/20111105/p1•  git commitをやり直しする&取り消しする(「get commit -- amend」と「git reset」) - hogehoge foobar Blog Style5•  http://d.hatena.ne.jp/mrgoofy33/20100910/1284069468

×