Git超入門
Gitって?
分散型バージョン管理システム
Pardon?
分散型?
ネットワークアクセスがなくとも
作業できる!
バージョン管理を怠ると
何がなんだか解らんだろ
w
デスマーチにしてやろう
ww
どうなってんの?
10月1日 10月2日 10月3日 10月4日
コミット
master
add_hoge
add_btn
ブランチ
マージ
M
早速使おう!!
Mac
Win
$ brew install git
くそメンドクサイ
WINの設定
• Cygwinをインストール
• Cygwinのsetup.exeを起動
• パッケージ選択画面
• git / git-completion / git-gui / git-svn / gitk
• 上の奴ら選択
• 次へ次へ
• 完了のはず
まず設定
$ git config --global user.name “名前”
$ git config --global user.email “メールアドレ
ス”
$ git config --global color.ui “auto”
まずInit!
$ git init
これでGitを使う環境が整う!
ファイルを追加して
$ git status
すると・・・・・
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be
committed)
#
# 追加したファイル
前のバージョンと比べて
このファイルが追加されてる
よ!
$ git status
変更されたファイルを
表示するコマンド
$ git diff
$ git diff ファイル名
変更されたファイルの
どこが変更されたか
表示するコマンド
$ git add 追加したファイル名
コミットしたいファイルを選択する
$ git commit
これでコミットできる!
Enter!Enter!・・・・・・?
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
#
ん?
コミットしたときどういう変更
をしたかコメントを書きます。
Vimでな!!!!
(Emacsの場合もあるよ!)
Vim?Emacs?
コンソール上でのテキストエディター
って思っておけばいいです。。。
今回は説明いたしません・・・・
$ git commit -m “コメント”
これでVim等は立ち上がらないよん。
$ git log
コミットの履歴を表示します
$ git revert コミット名(ハッシュ文
字列)
指定したコミットまで戻す
$ git status
$ git add ファイル名
$ git commit -m “コメント”
とりあえずこの3つは大事。超基本。
先の3つが解ればとりあえず
一人で管理は出来る。
が、Gitは分散型バージョン管理システム。
複数人が管理する!
$ git remote add origin リポジトリの
URL
リモートリポジトリの指定をします
$ git pull origin ブランチ名
リモートリポジトリのブランチを
ローカルに引っ張ってくる。
$ git push origin ブランチ名
リモートリポジトリに
ブランチを追加(更新)する
$ git clone リポジトリのURL
git init とか
git remote add origin とか
しなくもええよん
早速作業だ!
のまえに・・・
http://octodex.github.com/constructocat-v2/
一つのブランチで作業すると・・
なんかコミットが謎に・・
ブランチ分けして
作業!!
分かりやすい!!!
$ git branch 新しく作るブランチ
名
今のブランチから枝分かれする
新しいブランチを作る
master
add_hoge
ワカレター
ヤッター
(正確にいうと違うんですが・・・
まぁこんな感じで覚えてもらえればおk)
分かれたけど
今どっちのブランチ?
スペシャルサンクス 辻井&川口
$ git branch
これでブランチ一覧が表示される!
* master
add_hoge
*マークがついているのが今のブランチ!
$ git checkout ブランチ名
これでブランチを変えれる!
マージしたいけど
どうするの?
M
まず基盤になるブランチへ
$ git merge 取り込み元ブランチ
マージが成功した場合
自動でコミットされる!
成功した場合?
失敗すんの・・・?
競合が発生する場合がある
その場合解消する必要がある
A.txt
A.txt
同じファイルに
違う変更を
行った場合
A.txt
A.txt
$ git merge add_hoge
master
add_hoge
A.txt
A.txt
お前なんか
おかしくね?
おかしいの
お前じゃね?
_人_人_人_
>突然の競合<
 ̄Y ̄Y ̄Y ̄
A.txt <<<<<<< HEAD
作業中のブランチの内容
========
取り込み元ブランチの内容
>>>>>>> 取り込み元ブランチ名
競合解消後
$ git add 解消したファイル名
$ git commit
でマージ完了!
Gitを使う事で簡単に大人数での
開発も簡単に!
バージョン管理も簡単に!!
May Git be with you.

Git超入門