すみません、タイトルは釣りです。書籍『入門git 』と『もっと早く知りたかった! Gitが鬼のようにわかるスライド厳選7選』、『Gitがこわくて触れられなかったけど、このスライドで理解出来るようになったよGitサイトまとめ』紹介のスライドを読んで、理解したことをまとめるためにこの記事を書きました。今までは個人でしかGitを使っていなかったので、チーム開発に必要なGitコマンドを少しでも理解できるように頑張ります!
(05/13 08:45) githelpを追加
🐡 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』の紹介です。コマンドを実行すると図が変化するなど、動きがあってわかりやすいです。
🐞 rebaseの正しい使い方
ソーシャルメディアマーケティングで有名なクロコスさんのスライド。特にrebaseを使う場合の使い方や、チーム作業で注意すべき点が書かれていて勉強になります!
🚌 A successful Git branching modelについて
From バージョン管理のワークフロー
ブランチを活用してバージョン管理を行いながら開発をするための代表的なモデル『A successful Git branching model』は次のとおりです。
* masterブランチ:安定してリリースが可能な状態を保つ * developブランチ:最新の開発を反映する * featureブランチ:新しい開発をするのに用いる * releaseブランチ:リリース準備のために用いる * hotfixブランチ:masterで致命的バグがあった場合に使用します。
featureブランチでの機能開発の流れは次のとおりです。
git checkout -b feature-x.x.x develop #=> developからfeature-x.x.xブランチを作成して移動 |
releaseブランチでのリリース準備作業の流れは次のとおりです。
git checkout -b release-x.x.x develop #=> developからrelease-x.x.xブランチを作成して移動 |
hotfixブランチでのバグ修正作業の流れは次のとおりです。
git checkout -b hotfix-x.x.x master #=> masterからrelease-x.x.xブランチを作成して移動 |
補足として、『A successful Git branching model』のコマンド入力を簡略化するためのツールとして、git-flowがあります。もしこのモデルを踏襲したい場合はぜひ活用ください。
😎 Gitのコマンドの習得を支援するコマンド
日本語で、Gitコマンドのhelp的な機能を提供してくれるコマンドラインツール(gem)。
まずは次のコマンドを実行してgemをインストール。
gem install githelp |
実行はこんな感じ。
$ githelp README 8 比較 |
これは結構役に立ちそう。
masui/GitHelp: Gitコマンドの使いこなし支援
🐠 逆引きGit
nulabさんが作成されている『逆引きGit』は書籍になったら大ヒットしそうなレベルでまとまっていてオススメです!
🏀 本格的にGitを学ぶならPro Git
『Pro Git』は本格的にGitを学ぶ手助けをしてくれるサイトです。10の言語で翻訳されているほど人気が高いコンテンツです! 英語版の書籍は約$20でアマゾンUSで販売されています!
😸 マージで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
は、ベアリポジトリを作成する場合につけます。ベアリポジトリとは、更新情報だけをもつリポジトリのことでサーバの共有リポジトリの場合につけます。
🎉 参考リンク
Gitがこわくて触れられなかったけど、このスライドで理解出来るようになったよGitサイトまとめ
もっと早く知りたかった! Gitが鬼のようにわかるスライド厳選7選
🗻 変更来歴
(13/08/28 10:25) スライド『Git 7つの心構え』を追加。日本語のミスを修正
(13/08/28 12:00) Pro Gitの紹介を追加
(14/02/22 00:20) 全体的に説明をアップデート
(16/05/13 08:45) GitHelpを追加