Top Banner
Next-L Enju 開発ワークショップ 2 2012 3 10 田辺浩介
23

Next-L Enju 開発ワークショップ #02

Jul 20, 2015

Download

Education

Kosuke Tanabe
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Next-L Enju 開発ワークショップ #02

Next-L Enju 開発ワークショップ第 2回

2012年 3月 10日田辺浩介

Page 2: Next-L Enju 開発ワークショップ #02

バージョン管理システム

コンピュータファイルの変更者や変更履歴、コミット時のログなどのメタデータを管理するための仕組み

プログラムのソースコード管理で広く使用される

バージョン管理システムで管理されるファイルは「リポジトリ」に保存される

Page 3: Next-L Enju 開発ワークショップ #02

リポジトリ

バージョン管理システムで管理されているファイルを保存する場所

リポジトリは複数人で共有できる複数人で同じファイルを同時に編集することも、その際に発生した複数箇所の変更をひとつにまとめることもできる

Page 4: Next-L Enju 開発ワークショップ #02

リポジトリ

ある時点でリポジトリに登録されているファイル全体の状態をもとに、作業用の新しい保存場所を分岐して作ることができる保存場所を「ブランチ」と呼ぶ

新しい機能追加など、大規模な変更は別のブランチを作ってそこで行い、完成したら元のブランチに統合(「マージ」と呼ぶ)する

Page 5: Next-L Enju 開発ワークショップ #02

バージョン管理システムがないと

誰がいつソースコードを変更したのかがわからない最新のソースコードがどれかわからない

不具合が出ても、どの変更でその不具合が起きたのかがつかみにくい

結果として不具合が多発する

Page 6: Next-L Enju 開発ワークショップ #02

ファイルサーバとの違い

ファイルの変更履歴やコミットログなどのメタデータの管理特定のコミットが行われた時点のファイルだけを取り出すことができる

リポジトリ全体を特定のコミット時の状態に戻すこともできる

つまり、間違っても問題が発生しても、簡単に元に戻せる

Page 7: Next-L Enju 開発ワークショップ #02

バージョン管理システムの種類

CVS, Subversion, Gitなどなど

現在人気があるのは Git

リポジトリを自分のコンピュータに作れる(サーバ不要、オフラインでもコミット可能)

githubの成功

Page 8: Next-L Enju 開発ワークショップ #02

github

Gitを使ったリポジトリサービス

公開リポジトリは無料で使用可能

開発者の SNS的な要素も含む誰が、どの開発プロジェクトで、どんなコードを書いているか

どの開発プロジェクトが注目されているか

Page 9: Next-L Enju 開発ワークショップ #02

githubの特徴

クリック 1回で他人のソースコードを自分のリポジトリにコピーできる

自分のリポジトリにコピーしたソースコードに加えた変更を、コピー元の人に取り込んでもらうように連絡することができる

Page 10: Next-L Enju 開発ワークショップ #02

課題

誰かのプロジェクトを forkする

変更を加えて元の作者に pull requestを送信する

pull requestを受け取って mergeする

Page 11: Next-L Enju 開発ワークショップ #02

githubの特徴

バグ管理システムや wikiなどのコミュニケーションツールもついている

外部サービスとの連携機能も豊富コミットしたら自動的にメールで通知、 Twitterに投稿など

Page 12: Next-L Enju 開発ワークショップ #02

githubの特徴

とにかくいろいろなものが登録されているRuby on Railsや jQueryのような超有名ソフトウェアのソースコードも

Webサイトの HTMLも

自分専用のエディタの設定ファイルも

とにかくいろいろな企業、いろいろな開発者が登録している

Twitter, Facebook, ほかにもたくさん

Page 13: Next-L Enju 開発ワークショップ #02

はじめよう

Githubのアカウントを取ってみましょう

新しくリポジトリを作り、リポジトリにファイルを追加してみましょう

ファイルを編集し、その変更点をリポジトリに登録しましょう

Page 14: Next-L Enju 開発ワークショップ #02

用語(とりあえず覚えよう)

コミットバージョン管理システムを使って、リポジトリにファイルを保存すること

「チェックイン」とも呼ぶ

コミット時には通常、内容を簡潔に説明するための「コミットログ」を書く

チェックアウトリポジトリからファイルを取り出すこと

Page 15: Next-L Enju 開発ワークショップ #02

用語(とりあえず覚えよう)

ブランチリポジトリ内の作業領域。複数のブランチを作成することも、後でまとめることもできる

マージ複数人で同じファイルを変更していた場合、そのファイルの変更点をひとつにまとめること

たとえば、あるブランチでの作業を別のブランチに取り込む場合にこの言葉を使用する

Page 16: Next-L Enju 開発ワークショップ #02

用語(とりあえず覚えよう)

コンフリクト複数人で同じファイルの同じ箇所を、それぞれ異なる内容で編集しており、そのままではマージができない状態のこと

どの内容を採用するかを決めてからコミットする

Page 17: Next-L Enju 開発ワークショップ #02

用語(とりあえず覚えよう)

フォークあるソフトウェアをもとに、別の開発者・開発体制でソフトウェアを新しく作り始めること

あるブランチから別のブランチを作ることもこう呼ぶ

Page 18: Next-L Enju 開発ワークショップ #02

用語(とりあえず覚えよう)

リビジョンある時点でのリポジトリの状態に対して、バージョン管理システムが付与する IDのこと

タグある時点でのリビジョンに対して、開発者が付与する番号やキーワードのこと

Page 19: Next-L Enju 開発ワークショップ #02

作業の流れ

githubのアカウントとリポジトリを作る

SSH公開鍵を作り、 githubに登録する

ローカルにリポジトリを作る

githubにリポジトリを push(アップロード)する

Page 20: Next-L Enju 開発ワークショップ #02

githubのアカウントとリポジトリを作る

“New repository”を選択

その後の手順が表示されるので従う

Page 21: Next-L Enju 開発ワークショップ #02

github上のコードを取得する

以下のコマンドを実行$ git pull

Page 22: Next-L Enju 開発ワークショップ #02

他人のリポジトリを自分のところにコピーする

以下のコマンドで行う$ git clone [email protected]:nabeta/enju_ws.git

Page 23: Next-L Enju 開発ワークショップ #02

協力しよう

自分のリポジトリに他の参加者をcollaborator(協力者)として追加する

他の参加者のリポジトリをフォークする

フォークしたリポジトリから、フォーク元にpull request(変更点の取り込みのリクエスト)を送る