ボクココ

個人開発に関するテックブログ

Git 練習成果をまとめる

そろそろ会社でもチームでGitを管理するようになってきたので、率先して色々経験を積んで共有できるようにしようと思い、練習してみた。
以下やったことのまとめ

Git リポジトリ作成

ここはお決まりのGithubでリポジトリ作っておきました。自分の練習用リポジトリ
https://github.com/honkimi/branchEx

このプロジェクトをまずは拾ってくる


$ git clone git@github.com:honkimi/branchEx.git
$ cd branchEx
$ echo "リリースコード" > master.txt
$ git add .
$ git commit -a -m "first commit"
$ git push origin master

これでとりあえず土台は完成っと。
Githubで確認すると、確かにmaster.txtが追加されています。

次からはこれを読みながら環境を作っていこう。
http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html

develop ブランチ作成

開発は基本的にこのブランチでやる。
よってまずはブランチを作ってそこにファイルを作ってコミットしてみる。


$ git checkout -b develop master
# masterからdevelopブランチを作ってdevelopブランチへ移動

$ echo "開発コード" > develop.txt
$ git add .
$ git commit -a -m "added develop branch"
$ git push origin develop

これでdevelopブランチもプッシュされました。
この時点でmasterに組み込んでもらうようなプルリクエストも送れる。

さて次にfeatureブランチを作っていくとしよう。

Feature ブランチ

機能ごとに分けて作られるブランチ。
この機能をチームメイトと共同で作る場合は、プッシュする必要がある。
今回は一人でその機能を担当していることにする。


$ git checkout -b myfeature develop

#コメント機能でも追加してみるか
$ mkdir comment
$ echo "comments" > comment/code.txt
$ git add .
$ git commit -a -m "commit function"

こんな感じで開発&コミットを繰り返す
$ echo "comment2" > comment/code2.txt
$ git add .
$ git commit -a -m "commit function2"

さて、ある程度できたらdevelopブランチにマージだ!

developブランチにマージ

色々分かれてたFeatureブランチをdevelopブランチに組み込む。


$ git checkout develop

↓重要!オプション
$ git merge --no-ff myfeature

↓ブランチ削除
$ git branch -d myfeature

$ git push origin develop

--no-ff はmergeの重要オプション。マージの時は忘れないようにしないと。
付けるときとつけないときの差はこんな感じ。
IMG

さてその経過を確認しよう。
$HOME/.gitconfigには以下の便利コマンドがaliasで定義されていた。


$ cat ~/.gitconfig
l= log --graph --pretty=full --stat

$ git l


うわあああ せっかく続きを書いたのに、はてブのバグで消えてしまった。。
ここまでにします。。
これまでのイメージを覚えるのはとても大事。