SlideShare a Scribd company logo
1 of 70
Download to read offline
Git/GitHub 超入門
GitHubでたのしいチーム開発
本日のゴール
- Gitたのしい!
- GitHubでチーム開発気持ちい!
git
git
ってなんやろか…
分散バージョン管理システム
…よけいわからん
要すると
分散
して、
バージョン を 管理する
システム
のこと
「バージョン管理」って…?
普段やってること
普段やってること
メモ.txt
メモ
ID: hoge
メモ.txt
メモ
ID: hoge
普段やってること
メモ.txt
メモ
ID: hoge2015
編集中…
普段やってること
メモ.txt
メモ
ID: hoge
メモ.txt
メモ
ID: hoge2015
セーブ!!
普段やってること
メモ.txt
メモ
ID: hoge
メモ.txt
メモ
ID: hoge2015
間違えてた!!
戻したいけど上書きしてんじゃん!!!
バージョンを管理したいとき、
どうしますか?
…よけいわからん
コピーしてバックアップを
とっておく
案その1
コピーをとっておく
最新版index.html
index.html (前のやつ)
index-old.html
index20510620.html
編集用index.htmlindex.html
「バージョン管理」とは
セーブするたびに、
バージョンを振ります
「バージョン管理」とは…
メモ.txt
変更しました!
メモ.txt
セーブしました!
ver. 2
ver. 1
「バージョン管理」とは…
メモ.txt
メモ.txt
やばい間違えてた!
しかも上書きしちゃっ
たよー!!
ver. 2
ver. 1
そんなときにgitなら
メモ.txt
一個前にセーブした
ところ(ver.1)に戻る!
メモ.txt
これで安心!便利!
ver. 2
ver. 1
すべての変更履歴を管理できる
gitのいいところその1
gitのことば
• セーブ = コミット (commit)
• リポジトリ = フォルダ
gitのしくみ
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index.html
style.css
index.html
style.css
commit merge
自分のPCの中
push fetch
みんながみんなのPCで
ネットなくても作業できる
gitのいいところその2
これでgit使える!
$ git add FILENAME
$ git commit -m “message”
$ git push
1. ステージング・エリアに追加
2. ローカルで変更をセーブ
3. ローカルのセーブをリモートにもセーブ
$ git add FILENAME
$ git commit -m “message”
1. ステージング・エリアに追加
2. ローカルで変更をセーブ
$ git add/commit
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index.html
style.css
index.html
style.css
add/commit
自分のPCの中
$ git add FILENAME
$ git commit -m “message”
$ git push
1. ステージング・エリアに追加
2. ローカルで変更をセーブ
3. ローカルのセーブをリモートにもセーブ
$ git push
3. ローカルのセーブをリモートにもセーブ
$ git push
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index.html
style.css
index.html
style.css
自分のPCの中
push
GitHubとは
GitHubは、 Gitのリポジトリ
をホスティングするサービス
gitのしくみ
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index.html
style.css
index.html
style.css
commit merge
自分のPCの中
push fetch
GitHub
チーム開発どうやんの
チーム開発のやりかた
トツカのローカルリポジトリ
index.html
style.css
リモートリポジトリ
(GitHubがホスト)
index.html
style.css
index.html
style.css
commit
merge
fetch
push
彼女と共同作業をするとき
彼女と共同作業をするとき
トツカのローカルリポジトリ
index.html
style.css
index.html
style.css
index.html
style.css
commit
merge
fetch
push
彼女のローカルリポジトリ
index.html
style.css
index.html
style.css
commit
merge
fetch
push
リモートリポジトリ
(GitHubがホスト)
リモートリポジトリ
(GitHubがホスト)
彼女と共同作業をするとき
トツカのローカルリポジトリ
index.html
style.css
index.html
style.css
index.html
style.css
commit
merge
fetch
push
彼女のローカルリポジトリ
index.html
style.css
index.html
style.css
commit
merge
fetch
push
これが分散!!!
チーム開発フロー
チーム開発フロー
• 自分のアカウントにデータを複製 (fork)
• ローカル(自分のPCの中)にデータを持ってくる (clone)
• 編集する
• 変更内容をコミット(セーブ)する (add/commit)
• コミット内容をリモート(GitHub上のソース)に反映する (push)
• Pull Requestをだす (GitHubの画面から!)
1. 複製する (fork)
編集したいデータの複製を自分の
GitHubのアカウントにつくれます
GitHubのページから!!
1. 複製する (fork)
ローカルリポジトリ
リモートリポジトリ
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル
1. 複製する (fork)
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
自分のPCの中
fork
GitHub
(自分のアカウント) index.html
style.css
オリジナル
$ git clone https://github…
2. 自分のPCに持ってくる (clone)
リモート(GitHub)から
ローカル(自分のCP)にデータを持ってきます
* URLはGitHubのページからコピペします
2. 自分のPCに持ってくる (clone)
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
2. 自分のPCに持ってくる (clone)
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index.html
style.css
自分のPCの中
clone
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index.html
style.css
3. 編集する
3. 編集する
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index.html
style.css
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index.html
style.css
3. 編集する
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index.html
style.css
編集したった!!!!
$ git commit -m “message”
4. コミット(セーブ)する
ローカル(自分のPCの中)で
変更内容をセーブ!
$ git add FILENAME
commit(セーブ)するファイルを選ぶ
4. コミット(セーブ)する
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index.html
style.css
4. コミット(セーブ)する
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index2.html
style2.css
add / commit
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index2.html
style2.css
$ git push
5. リモートに反映する (push)
ローカル(自分のPC)の中の変更を
リモート(GitHub上)のソースに反映します
5. リモートに反映する(push)
ローカルリポジトリ
index.html
style.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index2.html
style2.css
5. リモートに反映する(push)
ローカルリポジトリ
index2.html
style2.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index2.html
style2.css
push
GitHubのページから!!
6. 変更を取り込んでもらう
(pull request)
オリジナルのレポジトリに
「僕の変更を取り込んでくれ!」
とリクエストします
5. 変更を取り込んでもらう(pull request)
ローカルリポジトリ
index2.html
style2.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index2.html
style2.css
5. リモートに反映する(push)
ローカルリポジトリ
index2.html
style2.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index.html
style.css
オリジナル(本体)
index2.html
style2.css
PR
変更したから取
り込んでよー!!
5. リモートに反映する(push)
ローカルリポジトリ
index2.html
style2.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index2.html
style2.css
オリジナル(本体)
index2.html
style2.css
PR
変更したから取
り込んでよー!!
OK!!!
0. みんなの変更を取り込む
$ git pull upstream master
オリジナルの方のリモート(GitHub上)が変更され
ていたら最新版を自分のソースに取り込む
$ git remote add upstream https://
github.com/okadai-techlab/okayama-u-
techlab.com.git
てくらぼのオリジナルの方もリモート先として登録する
* 登録は最初の一回だけでいいよ! ‘upstrem’って名前じゃなくてもいいよ!
5. 変更を取り込んでもらう(pull request)
ローカルリポジトリ
index2.html
style2.cssリモートリポジトリ
index2.html
style2.css
自分のPCの中
GitHub
(自分のアカウント) index3.html
style3.css
オリジナル(本体)
upstream
index2.html
style2.css
誰かが変更した
(最新版)
複製
origin
5. 変更を取り込んでもらう(pull request)
ローカルリポジトリ
index2.html
style2.cssリモートリポジトリ
index3.html
style3.css
自分のPCの中
GitHub
(自分のアカウント) index3.html
style3.css
index3.html
style3.css
pull
オリジナル(本体)
upstream
複製
origin
彼女と共同作業をするとき
トツカのローカルリポジトリ
index.html
style.css
index.html
style.css
index.html
style.css
commit
merge
push
彼女のローカルリポジトリ
index.html
style.css
index.html
style.css
commit
merge
pull
push
リモートリポジトリ
(GitHubがホスト)
upstream
index.html
style.css
index.html
style.css
push pull push
PR PR
複製
origin
チーム開発フロー
• 自分のアカウントにデータを複製 (fork) … 1回目だけ
• ローカル(自分のPCの中)にデータを持ってくる (clone) … 1回目だけ
• 最新版を取り込む (pull)
• 編集する
• 変更内容をコミット(セーブ)する (add/commit)
• コミット内容をリモート(GitHub上のソースorigin)に反映する (push)
• みんなの変更を取り込む (Pull Requestをだす) -> pullに戻る
Demo

More Related Content

Viewers also liked

Ruby 勉強会 第42回 発表資料 IO について
Ruby 勉強会 第42回 発表資料 IO についてRuby 勉強会 第42回 発表資料 IO について
Ruby 勉強会 第42回 発表資料 IO についてTomoya Kawanishi
 
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]SORACOM, INC
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素Takahiro YAMADA
 
An Introduction to Visual Thinking
An Introduction to Visual ThinkingAn Introduction to Visual Thinking
An Introduction to Visual ThinkingRyan Coleman
 
セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門Takami Sato
 
EPUBのナビゲーションを理解しよう
EPUBのナビゲーションを理解しようEPUBのナビゲーションを理解しよう
EPUBのナビゲーションを理解しようHiroshi Takase
 

Viewers also liked (10)

pecoを使おう
pecoを使おうpecoを使おう
pecoを使おう
 
Led cube lt
Led cube ltLed cube lt
Led cube lt
 
Ruby 勉強会 第42回 発表資料 IO について
Ruby 勉強会 第42回 発表資料 IO についてRuby 勉強会 第42回 発表資料 IO について
Ruby 勉強会 第42回 発表資料 IO について
 
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
 
An Introduction to Visual Thinking
An Introduction to Visual ThinkingAn Introduction to Visual Thinking
An Introduction to Visual Thinking
 
セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門
 
Get started with dropbox
Get started with dropboxGet started with dropbox
Get started with dropbox
 
WordPressで電子書籍
WordPressで電子書籍WordPressで電子書籍
WordPressで電子書籍
 
EPUBのナビゲーションを理解しよう
EPUBのナビゲーションを理解しようEPUBのナビゲーションを理解しよう
EPUBのナビゲーションを理解しよう
 

Similar to Git introduction

Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfYoshiki Tanaka
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Makoto Kawano
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発s_taichan
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発Taichi Shindo
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみたYudai Fujita
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたTakako Miyagawa
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめNatsumi Kashiwa
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
Git講習会
Git講習会Git講習会
Git講習会galluda
 
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書相皓 卞
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithublion-man
 
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだことYuta Ohashi
 

Similar to Git introduction (20)

Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdf
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
Github第4章
Github第4章Github第4章
Github第4章
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
 
gitを1から学ぼう!
gitを1から学ぼう!gitを1から学ぼう!
gitを1から学ぼう!
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめ
 
Git地図
Git地図Git地図
Git地図
 
Shizudev git hub宿題
Shizudev git hub宿題Shizudev git hub宿題
Shizudev git hub宿題
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
Git講習会
Git講習会Git講習会
Git講習会
 
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~ Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
 
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithub
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 

Git introduction