git紹介~入門編~
DESCRIPTION
フラクタリスト社内で実施された勉強会の資料ですTRANSCRIPT
Git紹介~入門編~
落合省治
Gitとは?
• Linusが作ったバージョン管理システム• Git(ぎっと)• CVS/Subversionの集中型とは違い、分散型のシステム。
なんか近頃有名?• 大体、 githubのせい https://github.com/
• オープンソース系のギーク(特に rubylist)が githubを盛んに使って話題になり、いろんなところで紹介された。
• Githubの使い勝手がいい(公開設定にすれば基本無料で使い放題)
• 小ネタ:実は githubと gitコミュニティは仲が悪かった(今は仲直りした)。
Gitの何がいいのか?
• CVS/SVNに比べて版管理システムとして良くできている……CVS/SVNが大嫌いな Linusが作っただけある(かゆいところに手が届く機能がいっぱい)
• 分散型リポジトリによる柔軟性と安全性の両立
• 動作が速い
版管理システムとしての機能
• いろいろ普通に使えます– Git commit– Git diff– Git log– Git show
その他、豊富な機能• 正直覚えきれません http://www.kernel.org/pub/software/scm/git/docs/
• とても全部は紹介できないので、便利機能をいくつか。。
機能対決 !(1) Git vs Subversion
• コミットをやり直したい!– Subversionでは基本的にコミットはやり直せない…擬似的にやるなら↓1. 修正前のソースを svn export、または、手でもとに戻す
2. 再度 svn commit
– Git1. 「 git reset HEAD^」で完了2. 「 git log」で確認すると直前のコミットが消えている
機能対決 !(2) Git vs Subversion
• コミットにあとから追加する– Subversionでは基本無理– Git
1. 「 git add」で追加したい修正を add2. 「 git commit –amend」でコミット
機能対決 !(3) Git vs Subversion
• 変更を横にのける– Subversionでは基本無理– Git
1. 「 git branche stash-test」(準備。ブランチ作成)2. Masterでファイル修正(準備)3. 「 git stash」で修正を一時的に横にのける( gitの checkoutは修正もついていってしまうので)
4. 「 git diff」とかで確認すると修正がなくなっている5. 「 git checkout stash-test」でブランチをチェックアウト6. なんか修正7. 「 git checkout master」で masterブランチをチェックアウト8. 「 git stash pop」で修正を呼び戻す
ともかくいっぱいありすぎです
• また今度紹介します• ともかく便利。使いこなすのは大変ですが。。。
分散型版管理システムとしての利点• 間に合いませんでした!アドリブで!• お題–階層型–個人公開リポジトリ–「 git push」「 git pull」でリポジトリ間の修正のやりとり
–柔軟性高い
その他
Windowsでの利用
• 亀 Git–すでに完成度たかいです
Github
• まずはここから• オープンソースプロジェクトならただで使える
Gitosys
• Gitユーザ管理用のツール• サーバに余計なアカウント作らずにすむ
書籍
• 「入門 Git」 http://www.amazon.co.jp/gp/product/4798023809/
• 定番にして決定版。なにせ gitプロジェクトのリーダー(日本人)が書いてます
• ちょっと不親切なところも。。。。
まとめ• 機能的に、既存の CVS/Subversionに勝っている。ともかく便利。
• すでに大きなプロジェクトでも利用されています。
• 分散型なのでいろいろ安心(集中型は中央リポジトリ壊れたら一巻の終わり)
• つーか、便利なので使いませしょう!
ご静聴ありがとう御座いました