Upload
taichiro-yoshida
View
2.192
Download
1
Embed Size (px)
DESCRIPTION
2011/05/21 at NAGASAKI-IT hands-on Spring 2011 http://atnd.org/events/15375
Citation preview
ひとりぎっとひとりで使うバージョン管理システム導入編
吉田 太一郎
2011年5月14日土曜日
自己紹介•吉田 太一郎•有限会社ランカードコム•@dataich•基本Web•趣味でiOSアプリとかMacアプリとか
2011年5月14日土曜日
バージョン管理システム
• 以前の状態に戻れる• 変更履歴を調べる• 論理的変更をひとまとめにして記録する• 何を、何故、誰が変更したかを記録する
2011年5月14日土曜日
バージョン管理のフロー
• リポジトリからソースコードを取得• ソースコードを編集• リポジトリへ編集内容を記録(コミット)
2011年5月14日土曜日
集中型
• リポジトリは1つのみ• コミット、変更履歴の確認などを1つのリポジトリに対してのみ行う
2011年5月14日土曜日
分散型• ユーザがそれぞれローカルリポジトリを持てる
• コミット、変更履歴の確認などをローカルリポジトリに対してのみ行う
• ローカルリポジトリと他のリポジトリ間で、必要なタイミングで変更履歴の受け渡しができる
2011年5月14日土曜日
Git
•現在最も普及している分散型バージョン管理システム
• Linuxの創始者Linus氏が原型を開発•オープンソース(GPL V2)にて公開
2011年5月14日土曜日
ひとりぎっと開始
2011年5月14日土曜日
コミットまでの流れ
2011年5月14日土曜日
git initGitリポジトリの作成
$ mkdir project$ cd project/$ git init
2011年5月14日土曜日
git configGitに関する設定
$ git config --global \user.name ‘Taichiro Yoshida‘
$ git config --global \user.email [email protected]
$ git config --list
2011年5月14日土曜日
git statusコミット予定などを確認
$ git status
ワーキングディレクトリ
ステージ(インデックス)
コミット
2011年5月14日土曜日
git addコミット予定に追加
$ echo 'change1' > 1.txt$ git status$ git add 1.txt$ git status$ echo 'change1' > 2.txt$ echo 'change1' > 3.txt$ git status$ git add .$ git status
2011年5月14日土曜日
git commitコミットする
$ git commit -m ‘最初のコミット’
2011年5月14日土曜日
git log変更履歴を確認する
# リポジトリ(ブランチ)全体のログ$ git log
# 特定ファイルのみのログ$ git log 1.txt
2011年5月14日土曜日
こんなことありませんか?1. リリース後、大きな改修を入れることに
2. たくさんのファイルをがっつり編集中
3. リリース済みのものにバグが発生し、早急に対応が必要になった
4. 改修中のものはまだリリースできないので、リリース済みのものを基本としてバグを直したい
5. しかし開発環境は改修中のソースでごちゃごちゃしてる・・・
2011年5月14日土曜日
そこで
2011年5月14日土曜日
ブランチ•作業場みたいなものと今日は考えよう•実は今も既にmasterという名のついたブランチで作業している
•ブランチは複数存在することができる•それぞれのブランチは履歴の中のどの時点にあたるかを保持している
2011年5月14日土曜日
図にすると
2011年5月14日土曜日
master --o
2011年5月14日土曜日
master --o--o
2011年5月14日土曜日
master --o--o \feature o
2011年5月14日土曜日
master --o--o \feature o--o
2011年5月14日土曜日
master --o--o--o \feature o--o
2011年5月14日土曜日
master --o--o--o \feature o--o--o
2011年5月14日土曜日
master --o--o--o------o \ /feature o--o--o
2011年5月14日土曜日
master --o--o--o------o--o \ /feature o--o--o
2011年5月14日土曜日
git branch
# ブランチを作成する$ git branch example1
#ブランチを確認する$ git branch
2011年5月14日土曜日
git checkout#ブランチの切り替え$ git checkout example1
# 履歴の中の特定の時点に切り替える$ git checkout a18180b
# 上記に加えてそのままブランチを作成$ git checkout a18180b -b example2
2011年5月14日土曜日
#ブランチ間の差分を確認$ git diff master example1
#ワーキングディレクトリとステージの差分$ git diff
#ステージとリポジトリの差分$ git diff --cached
git diff
2011年5月14日土曜日
#今いるブランチに別ブランチの変更を取り込む$ git merge first-branch
git mergeブランチに別ブランチの変更を取り込む
2011年5月14日土曜日
環境構築• Mac• Homebrew• MacPorts• Gitのページからバイナリで• Windows(自信なし)• msysgit• Gitのページからexeで
2011年5月14日土曜日
GUIもあるよ• Mac• Tower• Gitbox• Gity• Gitti• Windows(自信なし)• TortoiseGit
2011年5月14日土曜日
次回へ• ブランチ間でのコミットのつまみ食い• 歴史を塗りかえるあのコミットをなかった事にしたい
• Subversionとの連携会社ではみんなSubversion使ってても、自分だけこっそりGit使えばいいじゃない
• などなど
2011年5月14日土曜日