Successfully reported this slideshow.

Git をはじめよう

2

Share

Loading in …3
×
1 of 27
1 of 27

More Related Content

More from Shuhei Iitsuka

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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 GAME MULTI PLAYER GAME ADVANCED MODE UT Startup Gym
  8. 8. Git のインストール ubuntu の方(VirtualBox とか EC2 とか) # apt-get で git をインストールする $ sudo apt-get install git-core mac 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 log git 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/config Host 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 hoge Automatic merge failed; fix conflicts and then commit the result. $ cat hoge <<<<<<< HEAD a b c ======= hoge piyo fuga >>>>>>> 7fhtq23... git 的にどちらを優先すればいいのかわからない状態。 コンフリクトに遭遇した人が責任をもって直します(笑) UT Startup Gym
  20. 20. ブランチ ADVANCED MODE • コミット列を分岐することが出来る。 いつでもリリース 完成したので できる状態 合流! master 過去 未来 topic_twitter 新機能開発! UT Startup Gym
  21. 21. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master master 過去 未来 UT Startup Gym
  22. 22. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master master 過去 topic_twitter 未来 topic_twitter $ git branch topic_twitter UT Startup Gym
  23. 23. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 master HEAD master 過去 topic_twitter 未来 topic_twitter $ git checkout topic_twitter UT Startup Gym
  24. 24. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 master HEAD master 過去 topic_twitter 未来 topic_twitter $ git add . $git commit -m post to twitter complete! UT Startup Gym
  25. 25. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master master 過去 topic_twitter 未来 topic_twitter $ git checkout master UT Startup Gym
  26. 26. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master topic_twitter master 過去 未来 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 staging topic_mail topic_mail topic_twitter ローカル1 ローカル2 UT Startup Gym

×