北海道大学 理学院 宇宙理学専攻 惑星宇宙グループ 修士2 年 三上 峻

Slides:



Advertisements
Similar presentations
Silverlight Producer コンテンツ作成 第一回 GKB48 セミナー 「学習型クラウド共有スペース GKB コモンズは何を目指すか」 2013.oct.30.
Advertisements

ハンズオン!その前に インターネットには接続できていますか? SourceTree はインストールしてありますか? ペアは組めていますか? インターネットには接続できていますか? SourceTree はインストールしてありますか? ペアは組めていますか?
Rails 勉強会@東北(第 5 回) Subversion について SVN を利用した Rails プロジェクト のバージョン管理.
Trac と Eclipse の 便利な機能. プロジェクト管理システム: Trac 0. はじめに バージョン管理システム: Subversion 統合開発環境: Eclipse ・ Wiki による情報 管理 ・進捗状況の管理 ・プログラムの作 成 ・リポジトリに データを集める.
Debian の世界へようこそ! 北大 理学院 宇宙理学専攻 惑星宇宙グループ M1 三上 峻.  Debian GNU/Linux  Debian プロジェクト  GNU プロジェクト  Debian GNU/Linux とは  Debian インストール  パッケージ  Debian.
Debian の世界へようこそ! 北大 理学院 宇宙理学専攻 惑星宇宙グループ M2 三上 峻.  Debian GNU/Linux  Debian プロジェクト  GNU プロジェクト  Debian GNU/Linux とは  Debian インストール  パッケージ  Debian.
Internet Explorer 障害解析 最初の一歩 - IE のトラブルを理解する -. 概要 Internet Explorer を使用中に発生するトラブルの 種類と、調査のための切り分け方法を紹介します! (以降は IE と略称で表記します) よくあるお問い合わせ Web ページの表示が白画面のまま完了しない.
TestLink紹介 オープンソースで日本語対応のテスト管理ツール TestLink の紹介. TestLink の概要 フリーで WEB ベースのテスト管理シス テム フリーで WEB ベースのテスト管理シス テム 直観的で使いやすい 直観的で使いやすい 「 TEF 有志による TestLink.
1 EASE プロジェクトにおける EPM ( Empirical Project Monitor) を用いたプロジェクト管理デモ 奈良先端科学技術大学院大学 産学官連携研究員 松村 知子 2005 年 9 月 30 日 JISA 経営者セミナー.
Rubyでニコニコをごにょごにょ MH35.
株式会社co-meeting パブリッククラウドエバンジェリスト 吉田 パクえ
オートデスク・コラボレーション・サービス オートデスク株式会社
Curlの特徴.
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
自然言語処理プログラミング勉強会0 - プログラミング入門
理学院 宇宙理学専攻 惑星物理学研究室 修士 2 年 徳永 義哉
PROCESS 14:一般情報(2) InstallShieldLecture
ブラウザの基本操作 前のページに戻る ブラウザの左上にある 「戻る」ボタンで、自分がたどってきた一つ前のページに戻ることができます。
Samba日本語版の設定と運用のノウハウトラブルシューティング編
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
実習用サーバの利用開始手順 (Windowsの場合) TeraTerm Proをインストール 公開鍵をメールで送付
join NASS ~つながりあうネットワーク監視システム~
合同会社IT政策調査研究所 All Rights Reserved.
休講掲示板の電子化 鵜川研究室 菊地洲人 (あらかじめチラシを配る) 情報数理4年の菊地です。 これから私の研究内容の発表を始めます。
Androidアプリを公開する方法.
UNIX Life KMSF M2 saburo.
OpenOffice.org で版管理 西木 毅 第2回関西OpenOffice.org勉強会 大阪電気通信大学
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
EpWWWサーバ 北海道大学 理学院 宇宙理学専攻 M1 古田裕規.
5.WEKOコンテンツ登録 準備 マニュアル Version 2.1
e ポートフォリオ(Mahara)の使い方
解析サーバの現状と未来 2006/07/18 衛星データ処理勉強会 村上 弘志 現状のシステム構成など 統合解析環境としての整備
バージョン管理超入門 まだファイルコピーしてます?
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
Phenixサーバ クラックまとめ.
Webサイト運営 09fi118 橋倉伶奈 09fi131 本間昂 09fi137 三上早紀.
(original Takagi & Saito, 2007)
InfoLibDBRによる      システム構築  山口大学 情報環境部 深川昌彦.
PHP Framework Update symfony 編 株式会社ディノ 月宮紀柳.
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
共同ローカリゼーション フレームワーク 井上 謙次.
情報システム構築 -グループ分けとCVSの初期設定-
アプリケーション共有機能 〈参考〉 (図1) (図2)
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
iStorage NSシリーズ ウィルスチェック運用の手引き
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
いつでも! どこでも! 『働き方改革』 が解決します!! SMA100シリーズで安心・安全リモートアクセス
杉山耕一朗(北大理) 2009/02/06 epnetfan
へアクセスすると下記画面となって送付頂いた画面と異なってるので Microsoftアカウント名変更手順に進めません。 下記画面で
三浦元喜 北陸先端科学技術大学院大学 知識科学研究科 2007/9/7
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
すぐできるBOOK -基本設定編-.
gate-toroku-system のしくみ
議事録作成支援 Webアプリケーションの開発 リアルタイム通信を用いた合意形成を目指して
7 つの方法 PowerPoint での共同作業の 他のユーザーとの共同編集 だれが作業中かを確認する プレゼンテーションを共有し
Excelを便利にする250以上の機能を体系化したアドインはこちらです。
プロジェクト管理ソフトの群雄割拠をどうやって勝ち抜くか?②
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
すぐできるBOOK -かんたんSFA編-.
JPNIC db-wg(データベース検討部会) ca-tf(認証技術タスクフォース) 戸田 洋三
7-0.SWORD Client for WEKO インストールマニュアル Version 2.2
バージョン管理 児島 史郎 フィールドアプリケーションエンジニア.
複数のリポジトリを統合できる バージョン管理システムの提案と試作
データベース第3回目 意味ごとにテーブルを分ける
関数の変更履歴と呼び出し関係に 基づいた開発履歴理解支援システム
オープンソースソフトウェア開発に見る SCM中心型ソフトウェア開発
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
Presentation transcript:

北海道大学 理学院 宇宙理学専攻 惑星宇宙グループ 修士2 年 三上 峻 Github 入門編 北海道大学 理学院 宇宙理学専攻 惑星宇宙グループ 修士2 年 三上 峻

目次 バージョン管理システム 集中型 分散型 Git Git と GitHub GitHub 実演

バージョン管理システム

バージョン管理システムとは 変更履歴を管理することができるシステム ソースコードの改変の過程を記録 具体的には いつ・だれが・なぜを記録できる 簡単にやり直せる・簡単に履歴を調べる 具体的には 特定の段階まで戻ることができる 誤って消してしまったファイルを復活させることができる

集中型(1) 共有リポジトリを直接いじる 共有リポジトリ 管理者A 管理者B

集中型(2) リポジトリ(=履歴を残した倉庫)がサーバに集中(リポジトリは一つ) メリット デメリット 例 リポジトリが一つしかないので管理が楽 デメリット オフラインでは最新のソースコードが取得できない 全員で一つの履歴を共有 例 CVS Subversion 等々

分散型(1) ローカルリポジトリと リモートリポジトリ 共有リポジトリ (リモート) ローカル ローカル リポジトリ リポジトリ 管理者A 管理者B

分散型(2) リポジトリが開発者ごとに存在(n 人いたらn 個のリポジトリが存在) メリット デメリット 例 サーバにアクセス不要で手元で作業できる デメリット 集中型より管理は複雑 例 git Mercurial 等々

集中型と分散型どっちがいいの? それぞれメリット・デメリットがあるので難しい 分散型の管理の面倒さを解決したのがGitHub!! 集中型は危険性をはらんでいる 分散型は管理がめんどくさい 分散型の管理の面倒さを解決したのがGitHub!!

Git と GitHub

Git Linus Torvalds 氏によって作られた Linux カーネル管理のために作られた 公開当初はハッカーにしか使えないくらいだったが,現在は世界中のプログラマに利用されている

GitHub(1) Git リポジトリのホスティングサービス ソーシャルコーディング Gitとは別物なので注意!! Git リポジトリをインターネット上に提供しているのがGitHub ソーシャルコーディング ソースコードを公開し,みんなで平等にソースコードを改変しようという概念 GitHub のロゴ https://github.com/

GitHub(2) https://github.com/

GitHub(3) リモートリポジトリも複数個存在 GitHub ローカル リポジトリ ローカル リポジトリ 管理者A 管理者B

GitHub(3) Pull:リモートリポジトリから最新の情報をローカルに持ってくる GitHub Fork Pull Request Push Pull Push Pull ローカル リポジトリ ローカル リポジトリ Pull:リモートリポジトリから最新の情報をローカルに持ってくる 管理者A 管理者B

GitHub(3) Push:編集したローカルリポジトリをリモート側に反映 GitHub Fork Pull Request Push 管理者A 管理者B

GitHub(3) Fork:特定のリポジトリを自分のリポジトリに複製 GitHub Fork Pull Request Push Pull ローカル リポジトリ ローカル リポジトリ Fork:特定のリポジトリを自分のリポジトリに複製 管理者A 管理者B

GitHub(3) Pull Request:Bのリポジトリの変更内容をAに取り込んでもらうための要求 GitHub Fork Push Pull Push Pull ローカル リポジトリ ローカル リポジトリ Pull Request:Bのリポジトリの変更内容をAに取り込んでもらうための要求 管理者A 管理者B

やりとりまとめ Pull Push Fork Pull Request リモートリポジトリの内容をローカルリポジトリに反映 ローカルリポジトリの編集内容をリモートリポジトリに反映 Fork あるリモートリポジトリの内容を自分のリモートリポジトリに複製 Pull Request 編集した自分のリモートリポジトリの内容を取り込んでもらうように要求

実演

自分でやりたいひとは… 手元の環境にGit を導入してください 本・ブラウザを見ながらやってください 参考資料 Linux Mac パッケージから Mac 最初から入ってる? Windows msysGit 本・ブラウザを見ながらやってください 参考資料 http://www.cosmo.sci.hokudai.ac.jp/~mikataka/test/rails/git_github_install.htm

準備 Git インストール Git 設定 SSH key の設定 GitHub のアカウント作成(ブラウザ) 公開鍵の登録(ブラウザ) git config SSH key の設定 GitHub のアカウント作成(ブラウザ) 公開鍵の登録(ブラウザ)

実際に使ってみる リポジトリ作成(ブラウザ) 作成したリポジトリをローカルにclone コード作成 コミット(更新内容の確定) git clone コード作成 コミット(更新内容の確定) git add git commit -m プッシュ(GitHub にコードの公開) git push

初めてのPull Request どんな時にPull Request(PR)する? PRのいいところ Fork したリポジトリのソースコードにバグがあったとき ソースコードに新しい機能を追加したとき PRのいいところ いつ,誰が,どの箇所を改変したかがわかる その変更されたソースコードのtesting が簡単

PR をしてみよう Fork(ブラウザ) Clone branch コード編集 コミット リモートブランチの作成 PRの送信(ブラウザ) GitHub Fork Pull Request Fork(ブラウザ) Clone branch トピックブランチの作成 開発場所の作成のこと git branch git checkout コード編集 コミット 差分の確認:git diff リモートブランチの作成 PRの送信(ブラウザ) 三上の リモートリポジトリ Push Pull work pr-page みなさん

PR送信完了!!

PRを安全にマージする(1) 送信者側のリモートリポジトリを取得 merge 用のブランチの作成 送られたソースコードのテスト git remote add git fetch merge 用のブランチの作成 送られたソースコードのテスト PRの取り込み git merge 変更をリモートにプッシュ merge 用のブランチの削除

PRを安全にマージする(2) GitHub Fork Pull Request work clone Push Pull fetch pr-page 三上 みなさん

PRを安全にマージする(3) pr-page work clone fetch PR送信者 PR送信者 work pr-page pr1 checkout merge 三上 ブラウザで確認

PRを安全にマージする(4) pr-page work push fetch PR送信者 PR送信者 work pr-page pr1 merge 三上 いらなくなったブランチは削除

PRを安全にmerge 完了!!

まとめ GitHub はGit リポジトリのホスティングサービス Git を使えるようになればかなりイケる PR システムのおかげで安全にソースコードのmerge ができる 難しいので体で覚えるのがよい ソーシャルコーディングはこれからのソースコードの書けるプログラマには必須の概念

付録:非公開リポジトリ GitHub 中のリポジトリは基本的に公開リポジトリ 非公開にしたい場合は有料 非公開にしたい場合 Gitlab Gitorious

参考文献 Getting Git, 佐々木洋平, 2009/09/25, epnetfan 座学編資料, http://www.ep.sci.hokudai.ac.jp/~epnetfan/zagaku/2009/0925/pub/ Git & GitHub で共同作業 ~入門編~, Yoko TAMADA, 2012/09/23, http://www.slideshare.net/tmd45/gitgithub-14487284 サルでもわかるGit入門~バージョン管理を使いこなそう~, http://www.backlog.jp/git-guide/ Git github 導入, 三上 峻, http://www.cosmo.sci.hokudai.ac.jp/~mikataka/test/rails/git_github_install.htm WEB+DB PRESS Vol. 69 詳解GitHub, 技術評論社, 2012/07/25