Your SlideShare is downloading. ×
0
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
やりなおせる Git 入門
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

やりなおせる Git 入門

26,776

Published on

広島Git 勉強会 201306 の資料。 …

広島Git 勉強会 201306 の資料。

補足はこちらに http://blog.eiel.info/blog/2013/06/02/hiroshima-git/

元に戻すを主眼に、危険と少し危険にコマンドを分類してみた。

危険 - 変更が消えてしまい復元できない
少し危険 - コミットへの参照がない状態になる

0 Comments
138 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
26,776
On Slideshare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
21
Comments
0
Likes
138
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. やりなおせるGit入門2013-06-01 広島 Git 勉強会 201306
  • 2. 自己紹介•ひむらともひこ•Twitter eielh•Github eiel•http://eiel.info/
  • 3. 目的•元に戻せないのは怖い•元に戻せるようになろう•危険 と 少し危険 を知る
  • 4. とみせかけてreset と checkoutの話をする
  • 5. ふつうの Git 入門+ やりなおせる
  • 6. 事前準備•$ echo readme > README.md•$ ls .README.md•$ cat README.mdreadme
  • 7. はじめてのコミット•git init•git add .•git commit -m ‘initial commit’
  • 8. 間違えたらどーするの?
  • 9. git init•間違えた!•最初からやりなおしたい•rm -rf .git
  • 10. git add .•間違えた!•add する前にもどしたい•git rm --cached .
  • 11. ん?覚えられないって?•git status すると書いてあります
  • 12. git status$ git status# On branch master## Initial commit## Changes to be committed:# (use "git rm --cached <file>..." to unstage)## new file: README.md#
  • 13. git commit -m intial commit`•間違えた!•コミットメッセージなおしたい• git commit --amend -m ‘replace message
  • 14. 初回は特別なので難しい•最初からやりなおしたくなれば•rm -rf .git
  • 15. NeXT STEPふたつめのコミット
  • 16. ふたつめのコミット•$ echo readyou > README.md•$ git add -u•$ git commit -m ‘second commit’
  • 17. ファイルの変更•間違えた!•変更をなしにしたい•git checkout README.md•変更は消えてしまう•危険
  • 18. git add -u•間違えた!•変更をまだ追加したくないの•git reset README.md•変更は 残ったまま•安全
  • 19. git commit• 間違えた!!• commit する前と同じ状態にしたい• git reset --soft HEAD^• 変更は残ったまま & コミットは追えなくなる• 少し危険
  • 20. 登場したコマンド•git rm --cached•git checkout ファイル名•git reset•git reset --soft コミットのようなもの
  • 21. 危険の定義• 変更が失われてしまい、復元できなくなってしまうようなもの
  • 22. 危険なコマンド•git reset --hard•git checkout ファイル名•ブランチ名の場合は安全•変更した残したいならコミットする
  • 23. 少し危険の定義•コミットが新しく作成され、別物に代わってしまう•コミットが今のブランチから辿れない
  • 24. 少し危険なコマンド•git commit --amend•ひとつ前のコミットが別のものになります•git rebase•新しいコミットに置き換えられます
  • 25. 危険なコマンドをする前に•怖いなら•とにかくコミットしとけ•git commit
  • 26. 少し危険なコマンドをする前に•怖いなら•とにかくブランチを作成しとけ•git branch ブランチ名
  • 27. よくわからない、怖くなったら•git branch helpme•git add .•git commit -m たすけて•偉い人に聞く
  • 28. もう少し詳しく
  • 29. reset と checkout•必要な知識•ワークツリー•インデックス•コミット•ツリーのようなもの
  • 30. ワークツリー•実際に存在しているファイルやディレクトリ•編集して変化していく内容
  • 31. コミットコミットインデックスインデックスワークツリーワークツリー
  • 32. コミットコミットインデックスインデックスワークツリーワークツリーファイルを変更する
  • 33. インデックス•コミットを作る前準備をするところ•準備ができたところでコミットするとそれがコミットになる
  • 34. コミットコミットインデックスインデックスワークツリーワークツリーgit add
  • 35. コミット•復元するために必要なファイルやディレクトリ、コミットメッセージ、作成日、前のコミットなどを保存している
  • 36. コミットコミットインデックスインデックスワークツリーワークツリーgit commit
  • 37. ツリーのようなもの•ファイルツリーがとりだせるようなもの•コミット•ツリー•インデックス•などなど
  • 38. Reset•指しているコミットとインデックスを指定したコミットのものに変えるコマンド•--soft の場合は指しているコミットだけ•--hard の場合はワークツリーも変更•コミットを指定しない場合は HEAD
  • 39. コミットコミットインデックスインデックスワークツリーワークツリーHEAD^git reset --soft HEAD^
  • 40. コミットコミットインデックスインデックスワークツリーワークツリーHEAD^git reset HEAD^
  • 41. コミットコミットインデックスインデックスワークツリーワークツリーHEAD^git reset --hard HEAD^
  • 42. reset の弱い順•git reset --soft•git reset•git resset --hard強い弱い
  • 43. インデックスだけ取り消したい
  • 44. コミットコミットインデックスインデックスワークツリーワークツリーHEADgit reset HEAD
  • 45. インデックスもワークツリーもまとめて戻したい
  • 46. コミットコミットインデックスインデックスワークツリーワークツリーHEADgit reset --hard HEAD
  • 47. 上から切り裂く
  • 48. Checkout ファイル• `checkout ブランチ` とは区別して考えて• ワークツリーとインデックスを変更する• 指定したファイルをインデックスと同じものに• `ツリーのようなもの`明示的にを指定することもできます
  • 49. コミットコミットインデックスインデックスワークツリーワークツリーgit checkout ファイル名
  • 50. コミットコミットインデックスインデックスワークツリーワークツリーHEAD^git checkout HEAD^ ファイル
  • 51. 下ふたつだけを自由自在に動かす
  • 52. 一番下を動かすのは危険
  • 53. 少し危険
  • 54. git commit --amendA B Cmaster
  • 55. git commit --amendA B CCmaster
  • 56. C を辿る手段がないreflog などで探せますが
  • 57. master を複製しておくgit branch old
  • 58. git commit --amendoldA B CCmaster
  • 59. git reset --hard oldで元に戻れる
  • 60. git rebase
  • 61. 初期状態originA B CDmaster
  • 62. git rebase originoriginA B CDDmaster
  • 63. master を複製しておくとgit branch old
  • 64. 初期状態oldoriginA B CDmaster
  • 65. git rebase originoldoriginA B CDDmaster
  • 66. git reset --hard oldで元に戻れる
  • 67. 別にコミットのID がわかるなら ブランチは作る必要はありません
  • 68. おまけ•git revert はあるコミットをなかったことにするコミットを作成します•新しくコミットを作成するコマンド•git commit の -m はそろそろ卒業しましょう
  • 69. まとめ• 危険なことをするなら• 変更がコミットされてるか確認する• 消えてもいいなら気にしない• 少し危険なことをするなら• ブランチを作成しとけば元に戻せる
  • 70. まとめ•危険•git reset --hard•git checkout ファイル名
  • 71. まとめ•少し危険•git reset コミットのようなもの•git commit --amend•git rebase
  • 72. まとめ• git reset は ブランチ が指すところを変える• git checkout ファイル名• インデックスとワークツリーを変更する
  • 73. ご清聴ありがとうございました

×