Gitによるバージョン管理(ホームページ制作会社の社内勉強会)
社内勉強は月1で開催しています。ホームページのデザインやコーディングなど内容は様々で社員が興味のあることをメインに行っています。
前回の投稿でファイル共有・管理でGitの話をしましたが、タイミングよく勉強会でGitが取り上げられましたので、勉強会の内容を簡単ではありますが書いていこうと思います。
新しく入ったメンバーがまだ個別アカウントを取っていなかったため、そこからスタートとなりました。
社内で利用しいてるサービスは、bitbucketです。アカウントを登録して、練習用のリポジトリを作成、実際の動作を確認しながら勉強会は進んでいきました。
今回は時間の都合上、以下のことを行ってみました。
- コミット
- プッシュ
- プル
- マージ
- ブランチ
コミットとプッシュは使ったことがあるため、問題ありませんでしたがブランチとマージは初めて使うメンバーが多かったため、理解するのに苦戦していました。
特にマージは、複数人で同じファイルを作業した場合に起こる競合の解決についてかなり混乱したようです。
最終的には参加者全員理解でき充実した勉強会になりました。
知識やスキルは業務内容によって個人でバラツキ出てきてしまいますが、こうした勉強会で並列化することで効率が上がったり、できることが増えていくので今後もいい内容を取り上げで、メンバーの知識やスキルを伸ばして行けたらと思います。
以下は今回の勉強会の用語集です。
リポジトリ
ファイルの状態や履歴を保存しておく場所。ネット上のリモートリポジトリと自分のパソコン上のローカルリポジトリがある。ローカルで作業し、完了したらリモートにアップロードする。
コミット
作業の差分の記録。変更日時を基準に記録し過去にどのうような作業したかが分かる
プッシュ
アップロードのこと。ローカルで作業した内容をリモート側へ送信し、ローカルとリモートを同期させる
プル
ざっくりダウンロードのこと。リモート側に上がっている最新の内容をローカル側に取り込む。
マージ
自分が更新した以前に他者が更新している場合、自分が更新した内容をプッシュすると他者が更新した内容が上書きされ消えてしまう。そのため先に更新した他者の更新内容をローカルに取り込む必要がある。その作業のことをさす。
競合の解決
マージが自動でいかない場合手動で作業する必要がある。ほとんどが同じファイル内の同じ場所を修正していた場合。