gitでの作業手順がいまいちわからなかったので、備忘録としてまとめようと思います。
gitとは?
そもそもgitとは何か?というとこからですが、gitとは、ファイルの変更を記録して、いつでも元に戻せるシステムのことです。
詳しくは、調べればわかると思いますので、早速開発の流れに進みたいと思います。
gitでの開発の流れ
-
リモートリポジトリの作成
githubのトップページから「Create repository」をクリックし、新しいリポジトリを作成します。 -
リポジトリをプッシュ
リモートリポジトリ(github)を準備したら、ローカルリポジトリ(自分のPC)に登録されている、手元のファイル群をサーバーへ転送します。gitでは、手元のデータや変更をリモートリポジトリに反映することを「プッシュ(Push:押し出す)」と言います。
git push リモートリポジトリ名 ブランチ名
作成したリモートリポジトリを、他の人も作業したい場合は、「クローン」することで、リモートリポジトリに参加することができます。クローンすることで、複数人でリモートリポジトリを編集することができるようになります。以下はクローンの簡単な流れになります
-
作業フォルダへ移動
クローンしてきたリモートリポジトリを作業するディレクトリを作成し、そこに移動します。
cd 作業ディレクトリ
-
クローンする
git clone リモートリポジトリのURL
詳しくは、公式のドキュメントに記載があります。
-
-
ベースブランチから作業ブランチを作成
ベースブランチ(main や master ブランチ)から新しい作業ブランチを作成しますgit checkout -b 新しいブランチ名
-
変更をコミット
コミットの前に、git addでファイルをインデックスに追加します。(コミットの予約のような役割です)git addでファイルをステージング(コミットの予約をして)をしてから、コミットします。
git add
git commitでリポジトリにファイルを預けます。-m 'メッセージ’で、どのような変更を加えたのかコメントを入れます。
git commit -m “メッセージ"
コミット頻度はどうすればいいの?
gitではコミットをするごとに、コントリビューションが緑色になります。(草を生やすというそうです。)
毎日草を生やすことで、毎日継続してアウトプットできてるよということが可視化されます。
しかし、毎日コミット?コミットってどれくらいの頻度でやればいいの?と疑問がありました。
コミットは1タスク実行するごとに実施する!
1つのissueに設定した、Todoリストの作業が1つ完了したらコミットするイメージです。その他、サブタスク単位 とか 本日の作業終了時 など、キリが良いタイミングがあればこまめにコミットすべきだそうです。
※コミットが増えるとコメントが大変ですが、変更内容がわかるコメント内容にしておく必要あり
-
リモートリポジトリにプッシュ作業ブランチの変更をリモートリポジトリにプッシュし、変更をリモートリポジトリに反映させます。
git push リモートリポジトリ名 ブランチ名
リモートリポジトリをチームで利用している場合、誤ったプッシュにより、他のメンバーのプログラムが正しく動作しなくなってしまったりしないように、プッシュは慎重に行う必要があります。
そこで、プッシュする代わりに「プルリクエスト」を出すという方法があります。
以下に簡単なプルリクエストの流れを書きました。
こちらも詳しくは公式ドキュメントに記載があります。プルリクエストを使う場合の流れ
-
通常の手順で作業ブランチの作成からリモートリポジトリへプッシュまで行う
-
プルリクエスト(Pull Request)の作成
リモートリポジトリのウェブインターフェース(GitHub、GitLab、Bitbucketなど)でプルリクエストを作成します。プルリクエストで、コードのレビューを行い、ベースブランチに変更をマージするための要求をします。
-
レビューと修正
プルリクエストが他の開発者によってレビューされ、変更が必要であれば修正を行います。必要に応じてコミットとプッシュを繰り返して変更を更新していきます。
-
プルリクエストのマージ
プルリクエストがレビューを通過し、準備が整ったら、プルリクエストをマージします。これにより、作業ブランチの変更がベースブランチに統合されます。
プルによって、リモートリポジトリに加えられた変更がローカルリポジトリに取り込まれます。
git checkout ベースブランチ(mainやmaster)
git pull origin ベースブランチ(mainやmaster)
※
origin
は、リモートリポジトリのデフォルトの名前です
-
-
ローカルブランチの削除
プルリクエストがマージされたら、ローカルの作業ブランチを削除します。
git branch -d 作業ブランチ