Git をはじめよう!    飯塚 修平            UT Startup Gym
使用者の声                      なんかここんとこ最近腰とか頭とかマジ痛くて吐き気も                      するしスゲー調子悪かったんスけど、Git 使うように                      ...
Git のこんなところが便利• お前の書いたコードのお陰で動かなくなったんだけ ど?• でも大丈夫!• 動いてた時点まで戻せばいいもんね!                 HEAD                        UT Start...
Git のこんなところが便利• お前の書いたコードのお陰で動かなくなったんだけ ど?• でも大丈夫!• 動いてた時点まで戻せばいいもんね!          HEAD                      UT Startup Gym
Git のこんなところが便利• あ、マシンにお茶こぼしたー。あー、あー、あー。• でも大丈夫!• サーバのリポジトリから clone すればいいもんね!                    サーバのリポジトリ      push       ...
Git のこんなところが便利• このコードいつ誰が書いたの?消してもいいの?• でも大丈夫!• コミットログを見ればいいもんね!                     UT Startup Gym
Git をはじめよう! ONE PLAYER GAMEMULTI PLAYER GAME  ADVANCED MODE                    UT Startup Gym
Git のインストールubuntu の方(VirtualBox とか EC2 とか)# apt-get で git をインストールする$ sudo apt-get install git-coremac OSX の方# Homebrew のイン...
Git のしくみ                                                                          ONE PLAYER GAME                         ...
コミットのしくみ                     ONE PLAYER GAME インデックスワーキングツリー                     UT Startup Gym
コミットのしくみ                     ONE PLAYER GAME インデックスワーキングツリー                     UT Startup Gym
コミットのしくみ                           ONE PLAYER GAME          committed                      git commit インデックス git status   ...
コミットのしくみ               ONE PLAYER GAME          git loggit diff               UT Startup Gym
ONE PLAYER GAME$ git init #レポジトリ (スナップショットの集合) の作成$ touch hoge$ git status$ git add hoge$ git status$ git commit -m “first...
もとに戻す                                                                                    ONE PLAYER GAME•    git add を取り消す...
Git の本領発揮は複数プレイ                  MULTI PLAYER GAME  • 高度なマージ機能  • 常に最新のコードを共有  • 詳細な編集ログ                  UT Startup Gym
ベアリポジトリ                                              MULTI PLAYER GAME• ワーキングツリーを持たないリポジトリ -> コミットにしか興味を持っていません的な -> 実務的には...
MULTI PLAYER GAME$ vim ~/.ssh/configHost ut-gym.jp  IdentityFile /path/to/***.pem$ git clone ubuntu@ut-gym.jp:/home/ubuntu...
コンフリクトCONFLICT (content): Merge conflict in hogeAutomatic merge failed; fix conflicts and then commit the result.$ cat hog...
ブランチ                                         ADVANCED MODE• コミット列を分岐することが出来る。   いつでもリリース                     完成したので    できる...
ブランチ(スロー)                       ADVANCED MODE• コミット列を分岐することが出来る。              HEAD              mastermaster         過去   ...
ブランチ(スロー)                                           ADVANCED MODE• コミット列を分岐することが出来る。                     HEAD             ...
ブランチ(スロー)                                             ADVANCED MODE• コミット列を分岐することが出来る。                     master         ...
ブランチ(スロー)                                         ADVANCED MODE• コミット列を分岐することが出来る。                  master                ...
ブランチ(スロー)                                         ADVANCED MODE• コミット列を分岐することが出来る。                   HEAD                 ...
ブランチ(スロー)                                          ADVANCED MODE•   コミット列を分岐することが出来る。                     HEAD            ...
花サプの例                                 デプロイ                       master                               maint               ...
Upcoming SlideShare
Loading in …5
×

Git をはじめよう

1,545 views

Published on

UT Startup Gym (https://www.facebook.com/utgym) の Git 勉強会での講義資料です。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,545
On SlideShare
0
From Embeds
0
Number of Embeds
127
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Git をはじめよう

  1. 1. Git をはじめよう! 飯塚 修平 UT Startup Gym
  2. 2. 使用者の声 なんかここんとこ最近腰とか頭とかマジ痛くて吐き気も するしスゲー調子悪かったんスけど、Git 使うように なってから、そういうの全部なくなっちゃったんスよ ね。その体の調子の変わり目の時に何かしたかっていっ たら、ホントに Git をインストールしてあとちょっと薬 飲んだくらいだし。インストールしてから数時間でなん22歳男性・東京都 か体の調子もよくなってきちゃって。インストールした ときはこれだけでこんなに変化するなんて思ってもな かったんスけど。ホントに Git 様々って感じっスわ。ターミナルにscreenではなくbyobuを使うべき100の理由 - 馬鹿と天才は紙一重http://d.hatena.ne.jp/shim0mura/20111005/1317819710 UT Startup Gym
  3. 3. Git のこんなところが便利• お前の書いたコードのお陰で動かなくなったんだけ ど?• でも大丈夫!• 動いてた時点まで戻せばいいもんね! HEAD UT Startup Gym
  4. 4. Git のこんなところが便利• お前の書いたコードのお陰で動かなくなったんだけ ど?• でも大丈夫!• 動いてた時点まで戻せばいいもんね! HEAD UT Startup Gym
  5. 5. Git のこんなところが便利• あ、マシンにお茶こぼしたー。あー、あー、あー。• でも大丈夫!• サーバのリポジトリから clone すればいいもんね! サーバのリポジトリ push clone pull NEW! UT Startup Gym
  6. 6. Git のこんなところが便利• このコードいつ誰が書いたの?消してもいいの?• でも大丈夫!• コミットログを見ればいいもんね! UT Startup Gym
  7. 7. Git をはじめよう! ONE PLAYER GAMEMULTI PLAYER GAME ADVANCED MODE UT Startup Gym
  8. 8. Git のインストールubuntu の方(VirtualBox とか EC2 とか)# apt-get で git をインストールする$ sudo apt-get install git-coremac OSX の方# Homebrew のインストール$ ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"# git のインストール$ brew install git UT Startup Gym
  9. 9. Git のしくみ ONE PLAYER GAME コミット = スナップショットmaster 過去 未来 topic ファイルのスナップショットの集合のように考える。Pro Git - Pro Git 1.3 使い始める Gitの基本 http://progit.org/book/ja/ch1-3.html UT Startup Gym
  10. 10. コミットのしくみ ONE PLAYER GAME インデックスワーキングツリー UT Startup Gym
  11. 11. コミットのしくみ ONE PLAYER GAME インデックスワーキングツリー UT Startup Gym
  12. 12. コミットのしくみ ONE PLAYER GAME committed git commit インデックス git status git addワーキングツリー UT Startup Gym
  13. 13. コミットのしくみ ONE PLAYER GAME git loggit diff UT Startup Gym
  14. 14. ONE PLAYER GAME$ git init #レポジトリ (スナップショットの集合) の作成$ touch hoge$ git status$ git add hoge$ git status$ git commit -m “first set”$ git log$ git status$ vim hoge #適当に編集$ git status$ git diff$ git add . #untrackedまたはmodifiedをすべてステージング$ git commit -m “modified hoge to ...”$ git log... UT Startup Gym
  15. 15. もとに戻す ONE PLAYER GAME• git add を取り消す $ git reset HEAD ※ HEAD: 現在編集中のコミットのこと• ファイル hoge をコミットID 785b... の時点に戻したい $ git checkout 785b hoge -> 785b... の時点のものになった hoge がステージングされる -> 適宜修正して commit する• HEAD^^^ = HEAD から3つ前のコミット• --soft オプションや --hard オプション• 実際は git が吐いてくれるコメント頼りです(丁寧!)。git reset についてもまとめてみる-murankの日記- http://d.hatena.ne.jp/murank/20110327/1301224770 UT Startup Gym
  16. 16. Git の本領発揮は複数プレイ MULTI PLAYER GAME • 高度なマージ機能 • 常に最新のコードを共有 • 詳細な編集ログ UT Startup Gym
  17. 17. ベアリポジトリ MULTI PLAYER GAME• ワーキングツリーを持たないリポジトリ -> コミットにしか興味を持っていません的な -> 実務的には push, pull が可能なリポジトリ   サーバのベアリポジトリ dev.git clone push pull clone --bare NEW! ローカルのリポジトリ ローカルのリポジトリ ローカルのリポジトリ dev/.git dev/.git dev/.git UT Startup Gym
  18. 18. MULTI PLAYER GAME$ vim ~/.ssh/configHost ut-gym.jp IdentityFile /path/to/***.pem$ git clone ubuntu@ut-gym.jp:/home/ubuntu/git/gittest.git$ cd gittest$ ごにょごにょ$ git commit -m “〇〇のために△△を××した”$ git config --global user.name "Your Name"$ git config --global user.email you@example.com$ git pull origin master$ コンフリクトするかも。解消するためにごにょごにょ$ git push origin master$ git log --graph UT Startup Gym
  19. 19. コンフリクトCONFLICT (content): Merge conflict in hogeAutomatic merge failed; fix conflicts and then commit the result.$ cat hoge<<<<<<< HEADabc=======hogepiyofuga>>>>>>> 7fhtq23... git 的にどちらを優先すればいいのかわからない状態。 コンフリクトに遭遇した人が責任をもって直します(笑) UT Startup Gym
  20. 20. ブランチ ADVANCED MODE• コミット列を分岐することが出来る。 いつでもリリース 完成したので できる状態 合流!master 過去 未来 topic_twitter 新機能開発! UT Startup Gym
  21. 21. ブランチ(スロー) ADVANCED MODE• コミット列を分岐することが出来る。 HEAD mastermaster 過去 未来 UT Startup Gym
  22. 22. ブランチ(スロー) ADVANCED MODE• コミット列を分岐することが出来る。 HEAD mastermaster 過去 topic_twitter 未来 topic_twitter $ git branch topic_twitter UT Startup Gym
  23. 23. ブランチ(スロー) ADVANCED MODE• コミット列を分岐することが出来る。 master HEADmaster 過去 topic_twitter 未来 topic_twitter $ git checkout topic_twitter UT Startup Gym
  24. 24. ブランチ(スロー) ADVANCED MODE• コミット列を分岐することが出来る。 master HEADmaster 過去 topic_twitter 未来 topic_twitter $ git add . $git commit -m post to twitter complete! UT Startup Gym
  25. 25. ブランチ(スロー) ADVANCED MODE• コミット列を分岐することが出来る。 HEAD mastermaster 過去 topic_twitter 未来 topic_twitter $ git checkout master UT Startup Gym
  26. 26. ブランチ(スロー) ADVANCED MODE• コミット列を分岐することが出来る。 HEAD master topic_twittermaster 過去 未来 topic_twitter $ git merge topic_twitter UT Startup Gym
  27. 27. 花サプの例 デプロイ master maint pull staging staging topic_mail デプロイ時にマージ topic_twitter push テスト用 デプロイ用 push pull pull master master デプロイ時にマージ staging stagingtopic_mail topic_mail topic_twitterローカル1 ローカル2 UT Startup Gym

×