こんにちは!
今日は、先日インターンでチーム開発をしていてgitの操作について学ぶ事が多かった為
アウトプットを兼ねてgitの使い方や用語を解説していこうと思います。
Gitの概念とかは解説していないので、その点はご了承ください。
あくまで、チームで開発していた時に必要になった知識を解説しています。
チーム開発をする前の状態
まず、チーム開発をする前の状態は、
gitは1回だけ試しに自分の書いたコードをgitに挙げてみようという事でやってみただけで
コマンドはもちろん用語も全く分からない状態でした。
いざ、チーム開発が始まり困り果てました。。
メンバーの言っている事がほぼほぼ理解できませんでした。
例えば、「これをpullしといて」や「プルリク送ってください」とか
「ブランチをマージする」とか
もはや日本語ではない。。
なんか色々分からないので、一つ一つ単語の意味を理解しようと思い。自分で整理し始めました。
よく使う用語集
さあ、いよいよチーム開発が始まりgitlabを使ってソースコードを管理していく事になりました。
メンバーがよく使っている用語を並べていきます。
- clone
- pull
- push
- pull request(merge request)
- branch
- merge
大体この用語は頻繁に多用されます。
では、1つ1つ簡単に解説していきます!
・Clone(クローン)
cloneは、一番初めに使うコマンドですね。
簡単に言いますと、リモートに置いてあるソースコードを自分のローカル環境に新規で落とす事をクローンと言います。
なので、0→1にするイメージです。

作成したリポジトリの画面上で緑のcodeボタンがあるので、そこをクリックするとURLが表示されます。
そのURLをコピーしてターミナルに打ち込みます。詳しくは、「コマンド集」にて紹介します!
・Pull(プル)
次にPullです。
例えば、メンバーのAさんが新しい機能を実装しました。その時、「みなさん、Pullしてください」って言うと思います。そうなった時に使います。
簡単に言うと、1→2にするイメージです。
なので、変更箇所だけを反映させるイメージです。
cloneは開発の1番初めに使うものであって、1度cloneしたら基本的にはもう使いません。
なので、その後はPullだけを使います。
「clone」と「pull」は少し似ていますが
違いが分かりましたか?
ちなみに、、
Cloneしてローカルに落とす → 新しい機能を実装 → Pullする→ 新しい機能を実装 → Pullする
こんなイメージだと思っています。
それと、自分が実装した場合はpullする必要はないです。
自分以外の誰かがプッシュした時にpullすると思って下さい。
※自分のインターンの時は、フロント側はある程度できていて、バックエンドの方も少し書かれていたのでクローンしてから開発をしていきました。もし本当に1から作る場合はクローンする必要はないと思います!
・Push(プッシュ)
Pushは簡単です。ローカルで自分が新しく機能を実装した時にリモートの方に反映させるために使います。
ここで気を付けなければいけないことは、後で紹介する「ブランチ」をちゃんと確認してからプッシュすることです。それは、他のメンバーや上司に確認してどこにプッシュするかを聞いてからプッシュしてください。
誤って、指示と違うブランチにプッシュしてしまうと他の人にも影響が出てしまう恐れがあるため
指示に従って、かつ慎重にPushするようにしてください。
さっきの流れですと、
新しい機能を実装 → Pushする → Pullする→ 新しい機能を実装 → .......
こんな感じです。
・pull request(merge request)
GitHubではプルリクと言いますがGitlabではマージリクと言います。
言い方が違うだけでやっている事は一緒なので、あまり気にしないで下さい。
さて、解説に入りますがプルリクは
先ほどAさんが、新しい機能を実装してリモートの方にプッシュしました。すると、ソースコードがGitHub上に乗っかりました。ここからBさんやCさんは pullしますが、その前に
そのソースコードに誤りがないか、またエラーを引き起こす原因にならないか?など確認しなくてはいけません。そのためAさんは、みんなに確認してもらうためプルリクエストを送ります。
ちなみにこんな感じ

こんな感じでAさんは自分がやった事について書きます。
そうするとBさんやCさんは、Aさんが何をしたのか分かります。
そしてCreate pull request のボタンを押すとリクエストを送る事ができ

このような画面が出て来ます。
変更や追加したコードを見る場合はページ上の方にこのような表示がされてあります。

そして、「Gitのアイコン新規投稿」「Gitアイコン編集と削除の機能」のところをクリックすると変更した箇所が表示されます。
もし問題があれば、コメントで指摘し、問題なければ「承認」ボタンがあるのでそのボタンを押します。それを押す事で「確認しました。問題ありません。」という合図になります。
ここで流れのイメージ
新規機能実装 → push → プルリク → pull → 新規機能実装 → push →........
・branch(ブランチ)
ブランチは、枝と言う意味です。
簡単に言うと、一番上のブランチはMain又はmasterです。このmain(master)は、サービスを提供する段階の最後のブランチです。なので、完成していない段階では、ここにはプッシュしてはいけません。
要は、上司や上の人の許可があり「これでもう大丈夫だ」とういう段階になって初めてプッシュする場所です。
なので、普通は、main(master)の下に失敗しても大丈夫なようにブランチを切ります。
※新しいブランチを作ることを「ブランチを切る」と言います。
なので、自分の開発の時はmain(master)の下にdevelopというブランチを切り
その下に機能やテーブルを作成するごとにブランチを切っていました。
例えば、新規投稿機能の作成の場合は 「new_text」とか
userテーブル作成の場合は 「user_table」みたいに
※ブランチの切り方や切り替え方は「コマンド集」にて紹介します!
イメージとしては、

こんな感じでdevelopブランチの下にブランチを切ります。
Bさんが「user_table」を作成する場合は、「develop」のブランチ上で「user_table」
というブランチを切り、user_tableを作成したりバリデーション機能を付けたりと「user_table」に関する機能だったりを追加していきます。そして、「出来た!!」と思ったらプルリクして
メンバーに確認してもらいます。
少しはブランチを理解してもらえたでしょうか?😅
あまり説明に自信はありませんがご了承ください。。。
・merge(マージ)
続いて、マージですが
先ほどAさんは、リモートにプッシュしてみんなにプルリクを出しました。
そして、みんなから「問題ないですよ!」と承認をもらったので
そのソースコードをmaster又は、develop等に反映させます。その事を「マージする」と言います。
ブランチの所で説明しました、developブランチから新しくuser_tableブランチを切って
そこでuser_tableを作成していき、無事出来ました。
しかし、developブランチに切り替えてみると
databaseに関するファイル(modelやmigration file等)を探しても見つかりません。
これは、developブランチにuser_tableのブランチをマージしていないからです。
なので、みんなから承認をもらったらマージしてdevelopに反映させます。

ちなみに、この「Confirm merge」ボタンを押すとマージされます。
コマンド集
branchの切り替えと作成
・切り替え
master → develop に切り替える場合
git checkout develop
・ブランチを切る
git checkout -b develop
ちなみに、今自分がいるブランチを確認するコードはこちら
git branch
*がついている所が自分がいるブランチです!
ついでに言うと
git branch -a
これでリモートにあるブランチを確認する事ができます。
clone
用語集で説明した通り、GitのサイトにURLがあるので、そのhttpのURLをコピーして
↓のコマンドをターミナルの作業ディレクトリのところで打ち込んでください。
git clone ※コピーしたURL
pull
Bさんが新しくperson_tableを作成しました。なので、更新された箇所を自分の環境にも
落としたいので、とりあえずdevelopブランチにいる状態で↓のコマンドを打ちます。
git pull origin(pullしたいブランチ名)
例 git pull origin person_table
これで、developブランチにいる状態でファイルを見てみると
person_tableのファイルが見つかるはずです。
push
プッシュについては、ローカルで実装した機能をみんなの環境にも反映させるために
ローカルからリモートにプッシュするわけですが、
プッシュをする前に、addとcommitをしてからpushという流れになります。
手順としてはこちら↓
add
git add .
「 . 」をつけることで全ての変更箇所をaddすることが出来ます。
次に
commit
git commit -m "新規投稿機能を実装"
こんな感じで「-m」の後に何をしたかメッセージを書いてあげます。
そして最後に
git push origin ※pushするブランチ名
例
git push origin develop
これで変更箇所をリモートにあるブランチにpushする事が出来ました!
試しに練習でやってみて下さい。
最後に
一通り説明しましたが
全体の流れとしては、
※途中から開発に参加する場合
※cloneして自分のローカルにコードを落とす → 新規機能実装 → push → プルリク → merge → pull → 新規機能実装 → push →........
このような流れになっていると認識しております。
長々、解説して来ましたが自分自身まだまだ未熟者ですので
間違っている所もあると思います。その為、ご指摘いただければ幸いです。
これからもこういった記事をアウトプットがてら投稿していこうと思いますので
また遊びに来て下さいw
それではまた☺️

コメント