Git, Github超入門

5,991 views

Published on

Gitの勉強会をする機会があったのでその資料をアップします

I had a opportunity to open a small study session about Git and Github so I just uploaded the materials here.

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

No Downloads
Views
Total views
5,991
On SlideShare
0
From Embeds
0
Number of Embeds
149
Actions
Shares
0
Downloads
61
Comments
0
Likes
24
Embeds 0
No embeds

No notes for slide

Git, Github超入門

  1. 1. , 超入門 @tstomoki
  2. 2. 目次 • • • 関連ツール • 概念 • 基本的なコマンド • 練習 https://github.com/darashi/horesa.se
  3. 3. とは • グループ開発用のVersion管理システム – Linuxの生みの親Linus Torvalds氏が開発 (現在のメンテナンスは濱野純氏) • 他のVersion管理システムとの比較 時間軸的には Linus TorvaldsがNVIDIAに対し中指を突き立てF発言(Gigazine) Linus君がボクを後継者に指名した理由 参考 TortoiseCVS
  4. 4. なぜ を使うのか • が一番優れているから エディタ戦争(wiki) 参考 Git 対 Subversion: 長引く争い Share率(左からBazzar, CVS, Git, Mercurial, Subversion) Git とSubversionが要求される職の相対的な成長度
  5. 5. と の違い • – 単一リポジトリ – Commitしたら即反映 – Addするのは新規にファイルを追加するときだけ – リビジョン番号は数字 – 考えるのは「ローカル」と「リポジトリ」の2つだけ • – 分散リポジトリ(マスターは1つ) – Commitしても個人リポジトリにしか反映されない(pushすると反映) – Commit前には毎回addする必要あり – リビジョン番号はハッシュ値 – 考えるのは「ローカル」と「インデックス」と「個人リポジトリ」、「マスターリポジト リ」の4つ 参考 subversionを使っていた人がgit便利だなと感じたこと
  6. 6. の概念 リポジトリ ローカル ローカル ローカル Commit/update Commit/update Commit/update ・ネット環境がないとcommitができない ・リポジトリの肥大化
  7. 7. の概念 マスターリポジトリ 個人リポジトリ 個人リポジトリ 個人リポジトリ Push/fetch merge or rebase / commit ローカル ローカル ローカル インデックス インデックス インデックス Push/fetch Push/fetch merge or rebase / commit merge or rebase / commit add add addファイル更新 ファイル更新 ファイル更新
  8. 8. の概念 マスターリポジトリ 個人リポジトリ 個人リポジトリ 個人リポジトリ Push/fetch merge or rebase / commit ローカル ローカル ローカル インデックス インデックス インデックス Push/fetch Push/fetch merge or rebase / commit merge or rebase / commit add add addファイル更新 ファイル更新 ファイル更新 ここまでローカルで完結
  9. 9. の概念 • branch機能 – 並行して行われる複数の機能追加やバージョン管理支援機能 サルでもわかるGit入門「ブランチとは」引用: https://github.com/darashi/horesa.se
  10. 10. とは • Gitリポジトリのホスティングサービス – 開発者やチームが高速で良い品質のコードを生み出すためのコラボレー ション機能の提供 • 革新的機能(科学者達の化学反応、創発) – Fork – Pull request – Issue • 開発されている言語 – Ruby on Rails – node – jQuery – Symfony2 – Bootstrap – elixir, etc Github https://github.com/darashi/horesa.se
  11. 11. 関連ツール • GUIツール – Source Tree, GitX – EGit • テスト – • デプロイ – – Fabric – Cinnamon(https://github.com/kentaro/cinnamon) 参考 Jenkinsを本気で怒らせたらこうなる ぼくとJenkinsおじさんの360日戦争
  12. 12. 基本的なコマンド • 代表的なコマンドをいくつか – git init (gitの初期化) – git status (現在の状況表示) (息を吸うように「git status」、なんならaliasしちゃいましょう) – git add (fileをindexに追加) – git commit (fileをローカルリポジトリに追加) (svnから来てる人がよくやるgit commit –aは御法度) – git diff (差分の確認) – git branch(branchの確認) (息を吐くように「git branch」、「すいません、違うブランチにpushしちゃいました」はよくあ るGit事故Top3) – git merge (branchのマージ) – git rebase (branchのrebase) Git 7つの心構え参考:
  13. 13. 練習 • 練習用リポジトリをforkして使ってください • 内容としては – fizzbuzz.py (アルゴリズムの変更、可読化) – novel.txt (小説の作成) – typos.txt (誤字脱字の修正) • 好きなようにやってcommit等しながら学ぶスタイル • git status, add, commit, reset, revert, log, merge, rebase, stash, reflog, cherry-pick, conflict くらいが見れればいいかなと。
  14. 14. 環境設定 • windows, Mac, ubuntuの初期環境設定については簡単にま とめました → • 自分の環境に合わせて好きなクライアント等でやってみてく ださい • リポジトリの作り方とかも色々 – zshの設定と.zshrcをgit,dropboxでマシン別に一元管理する方法 – Ubuntu上にgitサーバの構築 gitの初期設定まとめ
  15. 15. 参考・推薦サイト等 • サイト – gitとsubversionのコマンド対応表 (subversionから来た人はここから) – Git初心者が見るべきサイトまとめ (この辺全部見とけばどうにかなる) – チーム開発に必要なgit コマンドを神速で習得しよう!-酒と泪とRubyとRailsと (効率的 に学べる気がする) – LearnGitBranching (GitのBranchをクイズ形式で学べるサイト) • slideshare, SpeakerDeck – いつやるの?Git入門 (これみればGit内部の動きが理解できる) – こわくないGit (branch, merge, rebase についての恐怖をなくしたいならこれ) – Git 7つの心構え (rebaseについてちゃんと学べる) • 参考図書 – 大塚弘記, 「GitHub 実践入門- Pull Requestによる開発の変革」, 技術評論社

×