*今回のテーマ
新入社員の方からGitについての質問をよく受けるので
ざっくりとした解説を作ってみました。
自分自身も歴が浅くGitに慣れていないので勉強も兼ねています。
*目次
Gitとは
ローカル/リモート
クローン
コミット・プッシュ・プルなど
作業の流れ
最後に
*Gitとは
Gitとはソースコードなどのバージョンを管理するための
分散型バージョン管理システムの一つです
※分散型バージョンシステムの他に集中型バージョンシステムがあります
集中型:中央サーバーにリポジトリが配置され、そこに変更が反映される
(サーバーがダウンすると作業ができなくなる可能性がある)
分散型:リポジトリをクローンして、リモートリポジトリにプッシュして変更を反映する
(リモートリポジトリがダウンしても影響を受けない)
バージョンの管理をしないと開発中にバグが起こってしまった時
「あのタイミングに戻したい...」
となっても戻す事が難しいです
Gitで管理していると、何かあった時も
簡単にバージョンを戻す事ができるので安心して作業ができます
Git=Githubでは?とよく聞かれますがこれは別物です
GithubはGitというツールを使ったwebサービスです
GithubでもBacklogでもGitの管理をすることはできるので
各プロジェクトに合わせて使ってみてください
*ローカル/リモート
自分も含めて初心者が躓く点は ローカル/リモート の混同ではないでしょうか
ローカルで変更したのに他の人の環境に反映されていない! など
たまに混乱している姿を目にします
ローカル
自分のPC、個人の開発環境
リモート
複数人がアクセスできる環境
私が教えられた身近なものを使った例は
テレビの向こう側がリモート(誰でも見る事ができる)
テレビを見ている自分がローカル
と教えられた記憶がうっすらとあります
ソースコードだと、見るだけでは作業ができないですよね。
そこで次の項目、クローンに入ります。
*クローン
リモートのソースコードをローカルに持ってきて作業をしていきます。
そのためにはまずリモートリポジトリのクローンが必要になります
クローンをする方法はいくつもあります
*コマンドでクローンをする(git clone URL)
*SourceTreeでURLを入力してクローンする
私はよくSourceTreeを使います。
*コミット・プッシュ・プルなど
クローンする事ができたらローカルで作業を始めます。
作業をする → コミット & プッシュ → プル → 作業 → 。。。
の繰り返しです。
コミットのタイミングをよく聞かれますが、
何回コミットしてもデメリットは特にないと思うので、
その日の業務終了時、小さいタスクが完了した時、
などのタイミングでいいのではないでしょうか?
プッシュは他の人にコードを共有したいときや
プルリクエストを送るタイミングでいいと思います
初心者にとって大切なことは
とにかくコードを書く・コードレビューをいただく
だと思います。
フェッチ、プルについては、
フェッチは見るだけ
プルは持ってくる
といつもざっくり伝えています。
*作業の流れ
初心者や慣れていない方はおそらく
Developブランチのまま開発することはないと思います。
基本的には、作業ブランチを作って作業する(赤線部分)
レビュー担当者にプルリクエストを送る
NG => 修正を再度コミット&プッシュ
OK => レビュー担当者がリモートにマージしてくださる
初めのうちはプルリクはすんなり通らないと思いますが
挫けずにコードを書いていきましょう
レビュー担当者がマージしてくださったら
ローカルのTask-01ブランチからdevelopブランチに戻ります。
そこでリモートのdevelopブランチをプルすれば
ローカルのdevelopが最新の状態になります
その他Gitの運用フローやブランチの命名規則などはプロジェクトによって違うので
各プロジェクトに合わせてGitに慣れていきましょう。
*最後に
Gitに自身がない方はコマンドだけで管理するのではなく
GitGraphやSourceTreeなどの便利な機能もあるので
そちらを利用してみるといいかもしれません。
以上、最後までお読みいただきありがとうございました。