Upload
akira-torii
View
304
Download
0
Embed Size (px)
DESCRIPTION
社内で開催した『Github実践入門』輪読会の資料です 内容がないw
Citation preview
Gitの導入 Github実践入門 2章
株式会社CyberZ 鳥居 英
アジェンダ
Gitの誕生背景やバージョン管理システムの説明
環境別インストール方法
設定方法
Gitってなんだ?
定番ではありますがWikipedia先生に聞いてみました
“Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡する ための分散型バージョン管理システムである。もとはLinuxカーネルの ソースコード管理に用いるためにリーナス・トーバルズによって開発され、 それ以降ほかの多くのプロジェクトで採用されている。 Linuxカーネルのような巨大プロジェクトにも対応できるように、 動作速度に重点が置かれている。現在のメンテナンスは 濱野純 (Junio C Hamano) が担当している。 Gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの 完全な複製が作られる。そのため、ネットワークアクセスがなく中心リポジトリに アクセスできない環境でも、履歴の調査や変更の記録といった ほとんどの作業を行うことができる。これが「分散型」と呼ばれる理由である。”
誕生の背景
2005年に、Linuxカーネルの開発に利用されていたBitKeeperというバージョン管理ツールが、ライセンスの都合上利用できなくなった
代替ソフトウェアが必要になったが、他に要件を満たすバージョン管理ツール見当たらなかった
仕方ないのでLinuxの創始者であるLinus Torvalds氏が自ら作成したツールがGit
集中型と分散型
バージョン管理システムには集中型と分散型がある
CVS(ロゴが見つからなかった…)
集中型 分散型
集中型アーキテクチャ
メリット
一つの中央サーバーでリポジトリを管理するためシンプル
デメリット
リモートリポジトリに接続できない環境では、最新のソースコードの取得やファイル編集の反映が行えない
リモートリポジトリに負荷が集中してしまいパフォーマンスが落ちる
中央サーバーが故障し、データが消えた場合、ソースコード取得できなくなる
リモート
リポジトリ
開発者A 開発者B
commit
checkout commit
checkout
分散型アーキテクチャ
メリット
開発者それぞれがローカルにリポジトリ持つので、リモートリポジトリにアクセスできない環境でも開発を行える
リモートリポジトリへの負荷を抑えることができる
Git(GitHub)の普及によって、標準になりつつある
デメリット
開発者各々がリポジトリを持つので、管理が煩雑
ルールを設けないと最新のソースコードがどこにあるのか把握しにくい
開発者A
push
fetch
ローカル
リポジトリ
リモート
リポジトリ
開発者B
commit
merge
ローカル
リポジトリ
push
fetch
commit
merge
Mac
デフォルトでインストール済み!
デフォルトで入っていない場合はHomebrew等を使ってインストールする
http://brew.sh/
Linux
各種パッケージ管理ツールからインストールする
Windows
「mysysGit」をインストールするのが一番お手軽
http://msysgit.github.io/
インストール時には、改行コードの取り扱いに注意する
Github上で公開されているコードの大半はLFで改行を行うが、WindowsではCRLFで改行を行うため、「Checkout Windows-style, commit Unix-style lin endings」を選択し、
チェックアウト時はCRLF、コミット時はLFに改行コードを変換する。
インストール方法
Gitの設定
Gitの設定は「~/.gitconfig」で管理する
.gitconfig設定例
コマンドからも設定できる
名前とメールアドレスの設定
コマンドを読みやすくする設定例
エイリアスの設定