すみません、タイトルは釣りです。書籍『入門git 』と『もっと早く知りたかった! Gitが鬼のようにわかるスライド厳選7選』、『Gitがこわくて触れられなかったけど、このスライドで理解出来るようになったよGitサイトまとめ』紹介のスライドを読んで、理解したことをまとめたいと思ってこの記事を書きました。今までは個人でしかgitを使ってなかったので、チーム開発に必要なgitコマンドを少しでも理解できるように頑張ります!
gitの基本的な開発スタイルについて
From イラストでわかる!git入門の入門
gitの基本的な開発スタイルは次の通りです。
(1) gitの開発ではローカルで使う個人リポジトリとチームで使う共有リポジトリを用いる (2) 共有リポジトリに push すると個人リポジトリのこれまでのコミット内容を送れる (3) pull すると共有リポジトリのコミット内容を個人リポジトリに取り込める
gitリポジトリを作成する
ローカルに個人リポジトリを新規作成する場合は、プロジェクト直下のフォルダでgit init
を実行します。また、サーバ側にリポジトリを新規作成する場合は、git init --bare
を実行します。
開発の基本的な流れ
From 一人でもはじめるGitでバージョン管理
gitを使った開発の基本的な流れは次の通りです。
(1) 共有リポジトリからpullして個人リポジトリを最新に (2) 個人リポジトリでソースコードを変更 (3) ファイルの追加/削除/変更をgitのインデックスに追加するために git add (4) 変更結果を git commit で個人リポジトリにコミット (5) 個人リポジトリをpushして共有リポジトリに反映
ブランチ・マージ・リベースの意味
git のブランチや、marge / rebase
コマンドについてかなり丁寧に説明をしてくれています。また、マージの際のFast Forwardの説明もわかりやすいです。コレを読んでおくと陥りがちな失敗をうまく回避できそうです!
git の仕組みについて
ここまでいくつかのgitコマンドを紹介してきましたが、git内部でどんな動きをしているかについて紹介されているスライド『いつやるの?Git入門』を紹介します。これを読んでおくと、git内部の動きが色々納得できますよ!
gitの基本コマンドを理解できるサイト
gitのコマンドを例題を解きながら理解をすることができるサイト『Learn Git Branching』の紹介です。コマンドに対応して図が変化するなど、動きもあってわかりやすいです。
A successful Git branching modelについて
From バージョン管理のワークフロー
ブランチを活用してバージョン管理を行いながら開発をするための代表的なモデル『A successful Git branching model』は次の通りです。
* masterブランチ:安定してリリースが可能な状態を保つ * developブランチ:最新の開発を反映する * featureブランチ:新しい開発をするのに用いる * releaseブランチ:リリース準備のために用いる * hotfixブランチ:masterで致命的バグがあった場合に使用します。
featureブランチでの機能開発の流れは次の通りです。
1 2 3 4 5 6 |
|
releaseブランチでのリリース準備作業の流れは次の通りです。
1 2 3 4 5 6 7 8 |
|
hotfixブランチでのバグ修正作業の流れは次の通りです。
1 2 3 4 5 6 7 8 9 |
|
補足として、『A successful Git branching model』のコマンド入力を簡略化するためのツールとして、git-flowがあります。もしこのモデルを踏襲したい場合は是非活用ください。
逆引きGit
nulabさんが作成されている『逆引きGit』は書籍になったら大ヒットしそうなレベルでまとまっていてオススメです!
マージでconflictが発生した場合の対策
marge中に2つのブランチのどちらも変更されたファイルがあった場合は、conflictが発生する場合があります。『Gitでコンフリクトした時のための備忘録』にconflict(矛盾)が発生した場合によく使いそうなコマンドが整理されています!
また、p4margeというconflict時のツールもあります。『Gitのマージツールにp4mergeを使ってみた』にgitで利用するための手順がまとめラているのでよかったら試してみてください!
補足
pullとfetchの違い
pull
コマンドでは自分のコードと他人のコードがマージされます。もしまずは取り込むだけにしたい場合は、fetch
コマンドを実行します。fetch と pullの違いに簡潔な説明がありますので、こちらもオススメです!
ベアリポジトリ(git init –bare)について
From ベアリポジトリとノンベアリポジトリ:理論編〜GitでWordPressのテーマを管理
From いつやるの?Git入門
--bare
は、ベアリポジトリを作成する場合につけます。ベアリポジトリとは、更新情報だけを持つリポジトリのことでサーバの共有リポジトリの場合につけます。