19
Git入門 12417日火曜日

Git for beginners

Embed Size (px)

Citation preview

Page 1: Git for beginners

Git入門

12年4月17日火曜日

Page 2: Git for beginners

自己紹介• 氏名:加門昭平

• @cameong

• id: kmn23

12年4月17日火曜日

Page 3: Git for beginners

目標• Gitのフローを把握する

• 一人でGitで遊べるようになる

12年4月17日火曜日

Page 4: Git for beginners

さてGit入門• Gitとは

• プログラムなどのソースコード管理を行う分散型バージョン管理システム。動作速度に重点が置かれている。

• Gitではワーキングディレクトリがレポジトリのすべての履歴を含んでいるため中央サーバーへのアクセス不可能な状態でもリビジョン間の履歴を調査することができる.

(引用http://ja.wikipedia.org/wiki/Git)

12年4月17日火曜日

Page 5: Git for beginners

バージョン管理システムいろいろ

• 個別バージョン管理システム• ファイル単位で個別システムでバージョン管理を行う• 例: RCS

• 集中型バージョン管理システム• レポジトリをサーバーで一元管理し、コミットなどの操作はクライアントから行う( サーバー・クライアント型 )

• 例:Subversion, CVS

• 分散型バージョン管理システム• レポジトリをクライアントでも管理する。このクライアント間でレポジトリを連携できる。

• 例: Git, Mercurial,BitKeeper, Bazaar

12年4月17日火曜日

Page 6: Git for beginners

Subversionの場合• 通常、サーバー・クライアント型の構成を取る。• リポジトリはサーバー上に格納されている。• リポジトリに対する操作はクライアント( PC )から行うが、ネットワーク的に繋がっていないといけない。• コミット情報は連番で管理• ファイルは差分管理

SNVサーバー

PC

ユーザ

コミット

アップデート

PC

ユーザ

コミット

アップデート

PC

ユーザ

コミット

アップデート

12年4月17日火曜日

Page 7: Git for beginners

Gitの場合リモートリポジトリ

PC

ユーザ

Push

Pull / clone

PC

Push

Pull / clone

PC

ユーザ

Push

Pull / clone

• レポジトリをサーバー上だけではなく、クライアント(CP)にも作成する。• コミットの差分や履歴はPC上のリポジトリを参照するため、サーバーに接続していなくても大丈夫。• コミット情報はハッシュ値で管理• ファイルをそのまま保持している

add /commit

add /commit

add /commit

12年4月17日火曜日

Page 8: Git for beginners

Gitの基本的な用語• リポジトリ

• バージョン管理システムにおいて、プログラムやファイルを蓄積しておく場所

• ローカルリポジトリ • 現在作業中のリポジトリ• git add やgit commit の対象となるリポジトリ

• リモートリポジトリ • ローカルリポジトリに対して、外部にあるリポジトリ• git clone やgit pull, git push の対象となるリポジトリ

• ワーキングツリー• ユーザが作業する場所

• Gitにおいては、ローカルレポジトリの. gitディレクトリがある場所

• コミット• ファイルの変更をローカルリポジトリに反映すること

12年4月17日火曜日

Page 9: Git for beginners

Gitの基本的なワークフロー

リポジトリの作成

ファイルの新規作成と編集

インデックスへの登録

コミット

1. リポジトリの作成2. ファイルの作成と編集3. インデックスへの登録4. リポジトリへのコミット

12年4月17日火曜日

Page 10: Git for beginners

リポジトリの作成

リポジトリの作成

ファイルの新規作成と編集

インデックスへの登録

コミット

git init : リポジトリを作成する

ホームディレクトリ直下にリポジトリsampleを作成する

$ mkdir sample$ cd sample$ git initInitialized empty Git repository in ~/sample/.git/$ ls -a. ←ワーキングツリー

.git  ←ローカルリポジトリ

git init

12年4月17日火曜日

Page 11: Git for beginners

ファイルの新規作成と編集

リポジトリの作成

ファイルの新規作成と編集

インデックスへの登録

コミット

git status: 状態を確認する

先ほどのリポジトリにファイルを新規作成してみます

$ ls sample_bashrc$ git status# On branch master## Initial commit## Untracked files:# (use "git add <file>..." to include in what will be committed)## sample_bashrcnothing added to commit but untracked files present (use "git add" to track)

git init

12年4月17日火曜日

Page 12: Git for beginners

インデックスへの登録

リポジトリの作成

ファイルの新規作成と編集

インデックスへの登録

コミット

git add : インデックスに登録する

先ほどのファイルをインデックスに登録する

$ git add sample$ git status# On branch master## Initial commit## Changes to be committed:# (use "git rm --cached <file>..." to unstage)## new file: sample_bashrc#

git init

git add

12年4月17日火曜日

Page 13: Git for beginners

コミット

リポジトリの作成

ファイルの新規作成と編集

インデックスへの登録

コミット

git commit : ローカルレポジトリにインデックスに登録     された変更を反映するgit log : git commit の履歴をみる$ git commit -m “Tis is the first commit”[master (root-commit) 619d683] Tis is the first commit 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 sample_bashrc

$ git status# On branch masternothing to commit (working directory clean)

$ git logcommit 619d6838d6c48cfe856fd560abed16fb97aa12e8Author: kamon_shohei <[email protected]>Date: Mon Apr 16 01:05:17 2012 +0900

Tis is the first commit

git init

git add

git commit

12年4月17日火曜日

Page 14: Git for beginners

タイポしちまったときウワァァァァァァヽ(`Д´)ノァァァァァァン!

$ git logcommit 619d6838d6c48cfe856fd560abed16fb97aa12e8Author: kamon_shohei <[email protected]>Date: Mon Apr 16 01:05:17 2012 +0900

Tis is the first commit           

12年4月17日火曜日

Page 15: Git for beginners

git commit --amendgit commit --amend : 直前のコミットメッセージを変更する

$ git commit --amend 1 Tis is the first commit  ← この行を編集する 2 3 # Please enter the commit message for your changes. Lines starting 4 # with '#' will be ignored, and an empty message aborts the commit. 5 # On branch master 6 # 7 # Initial commit 8 # ...

$ git log ...This is the first commit ...

修正された12年4月17日火曜日

Page 16: Git for beginners

Gitの基本的なワークフロー(まとめ)

リポジトリの作成

ファイルの新規作成と編集

インデックスへの登録

コミット

1. リポジトリの作成2. ファイルの作成と編集3. インデックスへの登録4. リポジトリへのコミット

git init

git commit

git add

-

インデックスの確認:git status

コミットログの確認:git log12年4月17日火曜日

Page 17: Git for beginners

gitのインストール方法• Windows

• Cygwin / MinGW / TortioseGit

• Mac

• port install git-core

• brew install git

• Gnu Linux

• yum install git-core

• apt-get install git-core

12年4月17日火曜日

Page 18: Git for beginners

参考文献• Gitによるバージョン管理

岩松 信洋 (著), 上川 純一 (著), まえだこうへい (著), 小川 伸一郎 (著)

12年4月17日火曜日

Page 19: Git for beginners

ご清聴ありがとうございました

12年4月17日火曜日