やさしいgit hub

90
ハハハハハ ハハハハ ハハハハハハハハハハハハハハハハハハSourceTree ハハハハハハハハハハハハハハハハハハハハハハハハ

Upload: shintaro-abe

Post on 26-May-2015

511 views

Category:

Documents


3 download

TRANSCRIPT

ハンズオン!その前にハンズオン!その前に

インターネットには接続できていますか?

SourceTree はインストールしてありますか?

ペアは組めていますか?

インターネットには接続できていますか?

SourceTree はインストールしてありますか?

ペアは組めていますか?

やさしいGithub

やさしいGithub

Niigata.scm feat. NDS2013/7/6

Niigata.scm feat. NDS2013/7/6

Niigata.scmNiigata.scm

新潟で SCM を広めるために 2012 年に発足新潟で SCM を広めるために 2012 年に発足

自己紹介自己紹介

阿部慎太郎( dictav )

新潟市在住フリーランス

iPhone アプリ開発

最近髪切りました

阿部慎太郎( dictav )

新潟市在住フリーランス

iPhone アプリ開発

最近髪切りました

素材について素材について

http://github.com/

http://mazenl77.deviantart.com

http://www.iconspedia.com/pack/pry-harware-1705/

http://github.com/

http://mazenl77.deviantart.com

http://www.iconspedia.com/pack/pry-harware-1705/

目的目的

SourceTree を使ってバージョン管理のスタート地点に立つSourceTree を使ってバージョン管理のスタート地点に立つ

AGENDAAGENDA

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

VCS とは?VCS とは?

VCSVersion Control System

VCSVersion Control System

バージョン管理システムの最も基本的な機能は、ファイルの作成日時、変更日時、変更点などの履歴を保管することである。これにより、何度も変更を加えたファイルであっても、過去の状態や変更内容を確認したり、変更前の状態を復元することが容易になる。

バージョン管理システムの最も基本的な機能は、ファイルの作成日時、変更日時、変更点などの履歴を保管することである。これにより、何度も変更を加えたファイルであっても、過去の状態や変更内容を確認したり、変更前の状態を復元することが容易になる。

http://ja.wikipedia.org/wiki/http://ja.wikipedia.org/wiki/ バージョン管理システムバージョン管理システム

VCS とはVCS とは

ドラえもん描いてみればわかるよ

ドラえもん描いてみればわかるよ

ドラえもん ver.1ドラえもん ver.1

まるかいてちょん まるかいてちょんまるかいてちょん まるかいてちょん

ドラえもん ver.2ドラえもん ver.2

おまめにめがでておまめにめがでて

ドラえもん ver.3ドラえもん ver.3

 うえきばち うえきばち うえきばち うえきばち

ドラえもん ver.4ドラえもん ver.4

まるろくがつむいかにまるろくがつむいかに

ドラえもん ver.5ドラえもん ver.5

 ユーフォーが あっちいって こっちいって ユーフォーが あっちいって こっちいって

ドラえもん ver.6ドラえもん ver.6

おっこちて おいけがふたつ できましたおっこちて おいけがふたつ できました

ドラえもん ver.7ドラえもん ver.7

おいけにおふねを うかべたらおいけにおふねを うかべたら

ドラえもん ver.8ドラえもん ver.8

おそらにみかづき のぼってたおそらにみかづき のぼってた

よく描いてみようなんて思ったな!

よく描いてみようなんて思ったな!

VCS を使うと?VCS を使うと?

いつでも状態を戻せるいつでも状態を戻せる

VCS を使うと?VCS を使うと?

過去の状態を確認できる過去の状態を確認できる

VCS を使うと?VCS を使うと?

複数のバージョンを比較できる複数のバージョンを比較できる

AGENDAAGENDA

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

SCM とは?SCM とは?

SCMSoftware Configuration Management

SCMSoftware Configuration Management

ソフトウェア構成管理

Software : ソフトウェア

Configuration : 構成

Management : 管理

ソフトウェア構成管理

Software : ソフトウェア

Configuration : 構成

Management : 管理

SoftwareSoftware

HTML, CSS, Javascript, etc...

PNG, JPEG, MPEG, etc...

Perl, PHP, Ruby, CGI, etc...

.htaccess, httpd.conf, etc...

HTML, CSS, Javascript, etc...

PNG, JPEG, MPEG, etc...

Perl, PHP, Ruby, CGI, etc...

.htaccess, httpd.conf, etc...

ConfigurationConfiguration

どういう配置にするの?

public, images, css, etc...

どこのサーバーに?

URL, ユーザネーム , パスワード

どうやって?

FTP, WebDAV, Git, etc...

どういう配置にするの?

public, images, css, etc...

どこのサーバーに?

URL, ユーザネーム , パスワード

どうやって?

FTP, WebDAV, Git, etc...

ManagementManagement

ある時点でのソフトウェアを構成する要素すべてを、識別、再現、追跡出来るようメンバー間で成果物を共有し、連携を促すための仕組み、ルール、プロセスを構築し、運用する

ある時点でのソフトウェアを構成する要素すべてを、識別、再現、追跡出来るようメンバー間で成果物を共有し、連携を促すための仕組み、ルール、プロセスを構築し、運用する

ManagementManagement

ある時点でのソフトウェアを構成する要素すべてを、識別、再現、追跡出来るようメンバー間で成果物を共有し、連携を促すための仕組み、ルール、プロセスを構築し、運用する

ある時点でのソフトウェアを構成する要素すべてを、識別、再現、追跡出来るようメンバー間で成果物を共有し、連携を促すための仕組み、ルール、プロセスを構築し、運用する

1人ならいらないの?1人ならいらないの?1人ならいらないの?1人ならいらないの?

ManagementManagement

ある時点でのソフトウェアを構成する要素すべてを、識別、再現、追跡出来るようメンバー間で成果物を共有し、連携を促すための仕組み、ルール、プロセスを構築し、運用する

過去の自分と現在の自分は別人なのでメンバー扱い

ある時点でのソフトウェアを構成する要素すべてを、識別、再現、追跡出来るようメンバー間で成果物を共有し、連携を促すための仕組み、ルール、プロセスを構築し、運用する

過去の自分と現在の自分は別人なのでメンバー扱い

VCS 入門を読もう!VCS 入門を読もう!

著者 高野将 (Niigata.scm)

https://github.com/masaru-b-cl/introduction-to-vcs

著者 高野将 (Niigata.scm)

https://github.com/masaru-b-cl/introduction-to-vcs

AGENDAAGENDA

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

GitHubGitHub

GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over three million people use GitHub to build amazing things together.

OCTOCATS!

GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over three million people use GitHub to build amazing things together.

OCTOCATS!

AGENDAAGENDA

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

VCS とは?

SCM とは?

GitHub とは?

GitHub ハンズオン

Github ハンズオンGithub ハンズオン

ハンズオン!その前にハンズオン!その前に

インターネットには接続できていますか?

SourceTree はインストールしてありますか?

ペアは組めていますか?

インターネットには接続できていますか?

SourceTree はインストールしてありますか?

ペアは組めていますか?

アカウント作成アカウント作成

http://github.com/http://github.com/

画面構成画面構成

ユーザを選択ユーザを選択https://github.com/niigata-scm

ユーザを選択ユーザを選択https://github.com/niigata-scm

リポジトリとは?リポジトリとは?

管理したいデータの単位

Web サイト

プログラムのソースコード

プロジェクトファイル

管理したいデータの単位

Web サイト

プログラムのソースコード

プロジェクトファイル

それでは始めよう!それでは始めよう!

リポジトリの作成リポジトリの作成Repository name: username.github.io

Description: My Web Site

Repository name: username.github.io

Description: My Web Site

リポジトリの画面リポジトリの画面

GitHub PagesGitHub Pages

GitHub PagesGitHub Pages

プロジェクトの Web サイトを公開できる

usename.github.io リポジトリを作成すると http://usename.github.io/ で公開できる

他のリポジトリは http://usename.github.io/repository_name/ で公開できる

プロジェクトの Web サイトを公開できる

usename.github.io リポジトリを作成すると http://usename.github.io/ で公開できる

他のリポジトリは http://usename.github.io/repository_name/ で公開できる

GitHub PagesGitHub Pages

Page を編集Page を編集

テンプレートの選択テンプレートの選択

確認確認

SourceTreeSourceTreeVCS Git をコントールする GUI ツールVCS Git をコントールする GUI ツール

セットアップウィザードセットアップウィザード

セットアップウィザードセットアップウィザード

セットアップウィザードセットアップウィザード

セットアップウィザードセットアップウィザード

セットアップウィザードセットアップウィザード

セットアップウィザードセットアップウィザード

cloneリポジトリをあなただけのものに

cloneリポジトリをあなただけのものに

ブックマークブックマーク

画面構成画面構成

作業コピー作業コピー

作業コピー作業コピー

作業コピー作業コピー

リポジトリリポジトリ

作業コピー作業コピー

実態はリポジトリにある

ディレクトリにあるのはコピー

ファイルを変更して保存してもリポジトリは変更されない

実態はリポジトリにある

ディレクトリにあるのはコピー

ファイルを変更して保存してもリポジトリは変更されない

安心して壊せる安心して壊せる

ハンズオン!ハンズオン!

1.README.md を編集して作業コピーを確認

2.変更されたファイルをステージングに

3.コミット

4.変更を確認

1.README.md を編集して作業コピーを確認

2.変更されたファイルをステージングに

3.コミット

4.変更を確認

1. 自己紹介ブランチを作成

2. aboutme.html を作成

3. index.html を編集して aboutme へのリンクを追加

4. コミット

5. プッシュ

1. 自己紹介ブランチを作成

2. aboutme.html を作成

3. index.html を編集して aboutme へのリンクを追加

4. コミット

5. プッシュ

自己紹介を作ろう自己紹介を作ろう

branchbranch

branchbranch

自己紹介自己紹介

ステージングステージング

commitcommit

commitcommit

コミットメッセージコミットメッセージ

コミットは仕事の区切り

自分が何をしたかを記録する

変更内容はログを見れば分かる

変更の意図を明確にする

コミットをする粒度に留意

コミットは仕事の区切り

自分が何をしたかを記録する

変更内容はログを見れば分かる

変更の意図を明確にする

コミットをする粒度に留意

ログを確認ログを確認

mergemerge

mergemerge

mergemerge

ブランチの削除ブランチの削除

Fork素晴らしいコンテンツをあなたの手に!

Fork素晴らしいコンテンツをあなたの手に!

??

Fork素晴らしいコンテンツをあなたの手に!

Fork素晴らしいコンテンツをあなたの手に!

Pull Requestお気に入りコンテンツに還元しよう!

Pull Requestお気に入りコンテンツに還元しよう!

1. 他人紹介ブランチを作成

2. aboutme.html を編集してペアの紹介を追加

3. コミット

4. プッシュ

5. プルリクエスト

1. 他人紹介ブランチを作成

2. aboutme.html を編集してペアの紹介を追加

3. コミット

4. プッシュ

5. プルリクエスト

他人紹介を作ろう他人紹介を作ろう

PullPull

PullPull

Git コマンドとの擦り合わせGit コマンドとの擦り合わせ

clone (checkout)

status

add

commit

push

pull (fetch and merge)

CONFLICT

clone (checkout)

status

add

commit

push

pull (fetch and merge)

CONFLICT

Git の目印Git の目印

HEAD

Branch ex) master

Tag ex) 1.0.1

Hash ex) 6d70bcf2a5f8f1adc82ae...

HEAD

Branch ex) master

Tag ex) 1.0.1

Hash ex) 6d70bcf2a5f8f1adc82ae...

今回紹介できなかったこと今回紹介できなかったこと

MarkdownMarkdown

「書きやすくて読みやすいプレーンテキストとして記述した文書を、妥当な文書へと変換できるフォーマット」(ジョン・グル―バー)

GitHub Flavored Markdown

シンタックスハイライトが強力

「書きやすくて読みやすいプレーンテキストとして記述した文書を、妥当な文書へと変換できるフォーマット」(ジョン・グル―バー)

GitHub Flavored Markdown

シンタックスハイライトが強力

IssueIssue

チームでの開発だけでなくて自分の TODO にも!チームでの開発だけでなくて自分の TODO にも!

WikiWiki

ソフトウェアではない内容はここにソフトウェアではない内容はここに

BitbucketBitbucket

もう1つの GitHubもう1つの GitHub

JekyllJekyll

GitHub Pages を活用するもう1つの賢いやり方GitHub Pages を活用するもう1つの賢いやり方