フォークしてクローンしてブランチ切ってプルしてコミットしてプッシュしてプルリクエストしてマージしてもらう

投稿者: | 2020年3月4日

もはや、パルスのファルシのルシがパージでコクーン的なこと言っているこれの意味をなんとか理解すべく、調べたことをメモしておく。
ちなみに私は、コーディング素人。自分一人で遊びで使ってみた程度のレベル。
gitを使った集団プログラミングはしたことないので、あくまで素人がイメージを理解するために調べたことだけ書いている。
ちゃんと理解したい人は、別のサイトを読むことを推奨する。

Forkする

これは、他人のリモートリポジトリをコピーして複製する
リモートtoリモートのイメージ。
何がおいしいって、他人のリポジトリは通常編集権がないから、自分なりに編集してみたいときに、複製を作って加工をする目的で実施する。Fork元にForkしたよーと通知が出るようなので、著作権の確認や、御挨拶的なマナーは必要だと思う。

Cloneする

これは、自分のリモートリポジトリから、自分のPCのローカルリポジトリへソースコードを一式コピー(ダウンロード的な行為)をすること。

Branchを切る

これは、リポジトリ内で、現在のMasterとなっているコードを改修したい時にを一式コピーする行為。Masterにいきなり編集を加えて壊してしまったら、他の人に迷惑かけるし、何より元に戻せなくなったら大変。
Masterに直接コミットは、この界隈では御法度の行為らしい。
かならずブランチを切って、改修を加えてコミットしてから、ブランチをマスターにマージするってのが、御作法。

Pullする

これはリモートリポジトリと自分のPCのローカルリポジトリの差分だけを引っ張ってくるイメージ。

Commitする

これは、自分のPCで編集したソースコードを、自分のローカルリポジトリに反映させる。編集内容を確定させるイメージ。

Pushする。

これは、自分のローカルリポジトリをリモートリポジトリに送信する行為。Pushの前には、コミットが必要ぽい。

PullRequestする

これは、ブランチを切って、編集したソースコードを元のリポジトリの管理者にPullしてください!と言って見せる行為。OKすればマージされる。
プルリクエストというより、マージリクエストと言う方がしっくりくるのは私だけだろうか。。。

Mergeする

Masterとブランチを統合する行為。ブランチ同士の統合も可能。

全体的な流れ

(01)git init でローカルリポジトリを作成
(02) コードを作成
(03) git add でステージ(仮登録)
(04) git commit -m “コミットの概要メッセージ” でコミット
(05) git push -u [リモートリポジトリ名] [ブランチ名] でリモートにPush
ーーー
(06)git clone [リモートリポジトリのURL] でリモートからローカル(自分のPC)にクローンする。
(07)git checkout -b [ブランチ名] でブランチを作成する
(08)コードを編集する。
(09) (03)と(04)をする
(10) git checkout [ブランチ名] で編集前のブランチに移動する。
(11) git merge [(07)で作ったブランチ名] で(08)で編集したコードをマージする。
(12) (05)をやる。

とにかく、これの繰り返し。

       「あのファイルサーバのエクセルの営業先リストさぁ、ちょっと見にくいから列追加してもいい?」

「いやぁ、今のリストを見て回ってる人もいるから、中途半端に弄ってる途中の状態を見られるとミスが起こって困るんですよねぇ。」

       「それもそうだなぁ。じゃ、コピー(Fork)して、別のとこで編集してみるよ」

「わかりました!」

       「今日は定時だから、ファイルサーバからPCにコピー(Clone)してお家で作業しよっと」

       「さて、お家で作業して出来た(Commitした)のを、ファイルサーバに保存(Push)しといたから、お前も確認しといてねー(PullRequest)。」

「わかりました。見ときますね(Pull)」

「先輩完璧ですね!じゃ、今のファイルに列追加して合わせちゃいますね(Merge)」

こんなイメージかな。