Your SlideShare is downloading. ×
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の使い方あれこれ

28,674

Published on

2011年10月1日のminami.rbの第9回勉強会で発表したgitのtipsのプレゼン資料です。

2011年10月1日のminami.rbの第9回勉強会で発表したgitのtipsのプレゼン資料です。

Published in: Technology
1 Comment
49 Likes
Statistics
Notes
No Downloads
Views
Total Views
28,674
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
111
Comments
1
Likes
49
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の使い方 あれこれ よしだあつし
  • 2. 自己紹介 お名前: よしだあつし Twitter ID: @yalab 職業: ニート兼プログラマ 好きな食べ物: カレー 興味: Rails 3.1, scala +android, 最短経路
  • 3.   超速報
  • 4.  今朝車上荒しにあ いましたorz
  • 5. Gitとは? 分散バージョン管理ツール 詳しくは第4回勉強会の上田さんの 資料をご覧ください http:// www.slideshare.net/to_ueda/ git-6821390
  • 6.   今日やるのはgitのTipsあれこれの 紹介だけです ハンズオンはそのうちきっとやります ので今日はお話だけ 資料はちゃんと公開しますので...
  • 7. 注意 HEAD という言葉がしばしば出てき ますが git log して一番上に表示さ れる commit のことをさします HEAD^ と書いてあると HEAD の 一つ前の commit のことをさしま す
  • 8. 注意なんでもは知らないわよ。知ってることだけ。
  • 9. git いろいろ「app/models/user.rb に pデバッグ入れすぎてしまいました。元に戻したいのですが..」
  • 10.  ファイル名を指定して checkout するとそのファイルが直前の add かcommit の状態に戻ります $ git checkout app/models/user.rb
  • 11. git いろいろ「git status したら .DS_Storeをaddしてしまっていたことがわかりました。どうにかならないでしょうか」
  • 12.  git reset HEAD すると git add したファイルをaddしてない状態に戻せる $ git reset HEAD .DS_Store
  • 13. git いろいろ「いろいろファイルの変更を行なったのですけどそれらを取り消して前のcommit に戻したいのですが」
  • 14.  reset を使うとコミットを巻き戻せます $ git reset --hard HEAD --hard を付けると変更が永久に失 われます。変更を残しつつコミットを 巻き戻したいときは --soft を付けて やってください
  • 15. git いろいろ「さきほど commit した変更に typoがありましたお恥ずかしいです><」
  • 16.  commit に --amend オプションを付けると直前のコミットをやり直せます $ git commit -m "Fixed Foobar" (app/views/users/show.html.erb でtypoが見つかった) $ vi app/views/users/show.html.erb //typoを修正する $ git add app/views/users/show.html.erb $ git commit --amend
  • 17. git いろいろ「git reset --hard HEAD するつもりが git reset --hard HEAD^ してしまいました。失われた HEAD を取り戻せないでしょうか」
  • 18.  reflog で消しちゃった commit を確かめて merge する $ git reflog f7329c6 HEAD@{0}: HEAD^: updating HEAD 5f777c3 HEAD@{1}: checkout: moving from branch2 to master 2cbae2f HEAD@{2}: merge 2cbae2f: Fast-forward $ git merge 5f777c3
  • 19. git いろいろ「まだコミットしてない変更差分があります。 この状態でgit pull すると怒られちゃったのですが、pull できないでしょうか?」
  • 20.  stash に退避させておいて pull する $ git stash save $ git pull $ git stash apply
  • 21. git いろいろ「git stash apply するつもりだったのですがzshの補完で git stash clear してしまいました...どうにかならないでしょうか?」
  • 22.  fsck --unreachable と show で目的の commit を探して merge する $ git fsck --unreachable | grep commit unreachable commit 312c16b3f1691b065cdff566dbfa3bf7c9659d34 unreachable commit 62763c8b20179c8feaff357c4308c139ebaf8010 $ git show 312c16b3f1 $ git merge 312c16b3f1
  • 23. git いろいろ「リリースの後いくつか機能追加してcommit をしました。ところがリリースしたやつにバグが見つかったのです。どのように扱えばいいでしょうか?」
  • 24.  後付けでリリースブランチを作成する -◎--◎--◎--◎--◎--◎--◎--◎master ↑ ↑ ↑ ここから先がリリース後の機能追加 ↑ ここがリリースしたところ 続く
  • 25.  後付けでリリースブランチを作成する -◎--◎--◎--◎--◎--◎--◎--◎master \ ◎--◎ release ↑ ↑バグフィックス ↑ブランチを分ける          続く
  • 26.  後付けでリリースブランチを作成する $ git log // リリースした commit を探す (commit abcde4 がリリースしたブランチだったとする) $ git checkout -b release abcde4 // ブランチを作成 $ vi app/models/user.rb // バグを修正する $ git commit -a -m "Fixed Hoge bug" $ git push origin release 続く
  • 27.  本番環境を作成したリリースブランチにする % git fetch origin --all // リモートに作ったブランチ % git branch -r // リモートにあるブランチを確認する * origin/master origin/release % git checkout --track origin/release // git 1.6.2 以降 % git checkout -b release origin/release // git 1.6.1 以前
  • 28. git いろいろ「githubで公開してたらyalabとかいう人からpullリクエストがきたんですけどどうしたいいでしょう...?」
  • 29.   リジェクトする
  • 30.  じゃなくて
  • 31.  変更を確かめる
  • 32.  問題ないのでリモートリポジトリをmerge する $ git remote add yalab_repos http://git@github.com/yalab/hoge $ git fetch yalab_repos $ git checkout -b local/yalab yalab_repos/master $ git merge local/yalab $ git push
  • 33.  「gitって便利ですね」
  • 34.  後は実践あるのみ
  • 35. まとめ 今回は git の Tips をいろいろ紹 介しました 今回紹介しなかったものもいっぱ いあります(例: git bisect とか git blame とか) こんなことできないかな?という事 の大抵の事はできます
  • 36.  後はググれ
  • 37.  余談ですけど
  • 38.  問題に当たった時に調べるのが一番身につきやすいです(当社比)
  • 39.  勉強会に出ただけで満足してないで コード書け
  • 40.   ご清聴ありがとうございました

×