opsta github-hundson 20120201

Post on 05-Jul-2015

1.944 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

OpenStack勉強会で行なったGitHubハンズオンの内容です。

TRANSCRIPT

おぷ☆すたプロデュースGitHub ハンズオン ( 仮 )

2012/2/1

This presentation includes following icons.Vista icon set: http://www.iconarchive.com/show/vista-people-icons-by-icons-land.html .DevCom Network icon pack:http://www.devcom.com/Flat: http://www.yellowicon.com/

おしながき

● Git/GitHub の概要● Git によるプルリクエストの概要● Open Stack へのコントリビュートの概要● 演習● LT( 中井、吉山 )● OpenStack に関する議論

Git/GitHub の概要

Git の概要

履歴参照やブランチの作成など、リポジトリへ逐一アクセス

ローカルにリポジトリのミラーを持ち、そこで作業

やり取りは基本同期のみオフラインでも作業可能( 出張中やサーバメンテ中でも継続できる )一回ローカルのリポジトリへコミットするので、リカバリができる

通信量が多い ( 重くなりがち )オンラインでないと作業できない操作を間違えたら即反映

GitHub の概要

Gitを中核としたプロジェクト管理サービス

● Git● Issue Tracker● Wiki● Webサイト管理

無償プラン : リポジトリは公開

有償プラン : リポジトリは非公開にできる

マージ  VS リベース

ブランチ

master

メインラインで開発が進む

リビジョン(あるときのコードの状態 )

ただの線に見えるけど、これが変更

(コミット、チェンジセット )

ブランチ

master

bug-fix

バグを直したり、機能追加したいんだけど、でも開発者に迷惑掛けたくないし、、、

→ブランチでメインラインに影響の無い様に開発

ブランチ

master

bug-fix

でも、ブランチを開発してる間にもメインラインは開発は進む

master

bug-fix

よし、機能が完成したぞ!!そろそろ直したバグ ( 追加した機能 ) を

取り込んでもらたいなぁ

ブランチのマージ

master

bug-fix

異なるブランチで同じ場所を編集してしまったため、

競合が発生!!

ブランチの競合

master

bug-fix

なんか、編集した場所が競合してうまく取り込めない

( マージできない ) んだけど

異なるブランチで同じ場所を編集してしまったため、

競合が発生!!

うまくマージできない

ブランチの競合

master

bug-fix

競合を修正!!マージ

ブランチの競合の解消

マージする人が競合を解決( マージする人(リポジトリ管理者 )

にマージ作業が集中 )

master

bug-fix

マージする人が競合を解決( マージする人(リポジトリ管理者 )

にマージ作業が集中 )

競合を修正!!マージ

ブランチ

リベース (1)

master

bug-fix

ブランチを開発してる間にもメインラインは開発は進む

リベース (3)

master

bug-fix

master

bug-fix

最新のリビジョンから伸びたように付け替える ( このとき競合を解決 )

リベース (3)

master

bug-fix

master

bug-fix

競合がないので、安心してマージ!!

最新のリビジョンから伸びたように付け替える ( このとき競合を解決 )

GitHub のプルリクエストの流れ

本家リポジトリ

GitHub

フォーク

本家リポジトリ

GitHub

フォーク (fork)自分のリポジトリ

作業用リポジトリを取得

本家リポジトリ

GitHub

フォーク (fork)自分のリポジトリ

clone

ローカルリポジトリ mastermaster

作業用ブランチを作成

本家リポジトリ

GitHub

フォーク (fork)自分のリポジトリ

clone

ローカルリポジトリ mastermasterfixed

-xxx

※masterを作業用ブランチにしてもいいが、本家のリポジトリが更新されたときに、追従が難しくなる。masterはあくまで本家リポジトリと同期するようになる。

作業用ブランチを作成

本家リポジトリ

GitHub

フォーク (fork)自分のリポジトリ

clone

ローカルリポジトリ mastermasterfixed

-xxx

作業

※masterを作業用ブランチにしてもいいが、本家のリポジトリが更新されたときに、追従が難しくなる。masterはあくまで本家リポジトリと同期するように、ブランチで作業

作業用ブランチは取り敢えず本家の影響は受けない

mastermastermastermaster

master

本家と同期させる

修正・コミット

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

修正

コミット

ブランチを GitHub へプッシュ

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

プッシュ

fixed-xxx

ブランチを GitHub へプッシュ

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

master

プルリクエスト

プルリクエスト

変更依頼書のようなもの

fixed-xxx

ブランチを GitHub へプッシュ

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

master

プルリクエスト

プルリクエスト

fixed-xxx

レビュー、コメント

ブランチを GitHub へプッシュ

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

master

プルリクエスト

プルリクエスト

××直せやごらぁby伊藤コメント

fixed-xxx

レビュー、コメント

ブランチを GitHub へプッシュ

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

master

プルリクエストレビュー、コメント

プルリクエスト

××直せやごらぁby伊藤コメント

修正

コミット

fixed-xxx

ブランチを GitHub へプッシュ

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

master

プルリクエスト

××直せやごらぁby伊藤

プッシュ

プルリクエストの差分の内容は自動的に更新

される

対応しました!!(by ほげお )

fixed-xxx

ブランチを GitHub へプッシュ

本家リポジトリ

GitHub

自分のリポジトリ

ローカルリポジトリ mastermasterfixed

-xxx

master

プルリクエスト

××直せやごらぁby伊藤

プッシュ

プルリクエストの差分の内容は自動的に更新

される

対応しました!!(by ほげお )

fixed-xxx

OpenStack の場合詳細は下記を参照

http://wiki.openstack.org/DevQuickstart/ja

OpenStack(Nova) の場合

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

バグ・仕様は LaunchPad で管理コードは GitHub で管理レビューは Gerrit というこれまた別のシステムで管理

バグ報告・提案の登録

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

リポジトリの複製

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

ローカルリポジトリ mastermasterfixed

-xxx

clone

修正・コミット

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

ローカルリポジトリ mastermasterfixed

-xxx

修正

コミット

修正・コミット

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

ローカルリポジトリ mastermasterfixed

-xxx

テスト実行!!OK!!

レビュー依頼の登録

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

ローカルリポジトリ mastermasterfixed

-xxx

レビュー依頼・修正(git review)

fixed-xxx

レビュー依頼の登録

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

ローカルリポジトリ mastermasterfixed

-xxx

レビュー依頼・修正(git review)

fixed-xxx

レビュー依頼を修正するときは、changeid を付けないと同じレビューリクエストに対する更新とみなしてくれないので注意 ( 基本自動でやってくれる )

GitHub リポジトリへの反映

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

ローカルリポジトリ mastermasterfixed

-xxx

レビュー依頼・修正(git review)

リポジトリへ反映

OK!

fixed-xxx

その他のプロジェクト

本家(GitHub)

レビューシステム(Gerrit)

LaunchPad(バグ・仕様管理 )

Bug Blueprint

ローカルリポジトリ mastermasterfixed

-xxx

Apacheとかだと JIRAだったり、GitHubをリポジトリと

Issue Trackingを分けているプロジェクトも多い

top related