gitってなに?
ファイルの変更履歴を記録する、バージョン管理システムのこと
頻出用語の意味 Part1
リポジトリ
ディレクトリ、ファイル、変更履歴を保管する場所
リモート(共有)リポジトリ
サーバー上に存在し、複数の利用者で共有するリポジトリ
ローカルリポジトリ
作業者の手元に存在するリポジトリ
作業ツリー(作業ディレクトリ、ワーキングツリー)
作業者が実際に作業するときに使用しているディレクト
ステージングエリア(インデックス)
編集したファイルをリポジトリへ保存する前に一時的に保管する場所
変更されたファイルだけが保管される
コミット
変更を確定し、ローカルリポジトリに反映させること
ステージングエリアにあるファイルをローカルリポジトリへ渡す
git commit [オプション]
プッシュ(push)
ローカルリポジトリでの変更をリモートリポジトリへ反映させること
変更されたファイルをリモートリポジトリに渡す
git push [オプション]
プル(pull)
他の人が登録した変更記録をローカルリポジトリに反映させること
リモートリポジトリに保管された変更ファイル、変更履歴をローカルリポジトリに持ってくる
git pull [オプション]
クローン(clone)
ローカルで作業を進めるために、リモートリポジトリをローカルリポジトリにコピーすること
git clone [オプション]
ブランチ
メインとなる変更履歴の流れとは別に、枝分けし変更棋歴を分岐させて記録していくもの
git checkout -b ブランチ名 ### 新たなブランチを作成し、そのブランチに切り替える場合
マージ
別ブランチで変更した履歴を、メインとなる変更履歴の流れと合体させること
git merge ブランチ名
チーム開発の流れとgitコマンド
今回は、複数人でのチーム開発を想定し、チーム開発の流れとgitコマンドの使い方を図を用いて説明します。
⓪ プロジェクトリーダーがサーバー上にリモートリポジトリを作成します。
① 開発者Aさんは作成されたリモートリポジトリをgit cloneコマンドで自分のローカル環境にコピーしてきて、ローカルリポジトリが出来上がります。
② 開発者Aさんは、自分の作業用ブランチを作成(きります)します。
③ 開発者Aさんは、割り振られた担当の作業をワークツリー上で行います。
④ 開発者Aさんは、編集作業が完了するとgit addコマンドで、変更されたファイルをステージングエリアへ移します。
⑤ 開発者Aさんは、ステージングエリアに移されたファイルを git commitコマンドでローカルリポジトリへ記録します。
⑥ 開発者Aさんは、ローカルリポジトリに反映された変更記録をgit pushコマンドでリモートリポジトリへ送信します。
⑦ 開発者BさんもAさん同様、変更記録をリモートリポジトリへ送信します。
開発リーダーは、Bさんの変更履歴を確認して、メインのブランチにBさんの変更履歴をマージします。
⑧ 開発リーダーは、Bさんのときと同様にAさんの変更履歴を確認し、Aさんの変更履歴をメインのブランチにマージします。
⑨ 開発者Aさんは、次なる編集作業を行うべく、git pullコマンドで、現状(AさんBさんの変更が記録された状態)のリモートリポジトリをロカールリポジトリへ持ってきます。
以降は、②から⑨の繰り返しとなります。