Githubでの基本的なファイル更新手順
作業ファイル作成(クローン)
初回作業時に作業場所(ローカルリポジトリ)を作る。
既存のファイルをリモートリポジトリからコピーする作業。
※2回目以降は差分更新(Fetch)を使う
※リポジトリ名が変わった際は再度Cloneを行う
1、GithubからClone用のHTMLをコピー

2、VS_codeにて「Cntl+P」でGit cloneコマンドを選択
続いて表示される記入欄に1で取得したHTMLを入力

3、ローカルリポジトリの格納先を選択
作業ファイルの更新(フェッチ)
2回目以降にローカルリポジトリで作業する際にリモートリポジトリと同期を行う。
作業前に必ず行わないとコンフリクト(複数人が同じ場所を同時更新することでマージができなくなる現象)が発生する。
Git Graphというアドオンを入れておくと以下のようなGUIからフェッチを行うことが可能。
またMainに対してどのブランチがいつマージされたのかも可視化されているためコンフリクトの解消時なども役立つ

タスクごとの作業を保存(コミット)
ローカルリポジトリでファイルの更新&修正作業後にSaveを行う作業。
通常のファイルSaveとは違い、一つのタスク単位でコミットを行っていく。
VS_codeのSource controlよりコミットをする。
ファイルの修正後通常通りSave
「Source control」の変更欄に出てきた変更ファイルの「+」をクリック
コミットメッセージで作業内容を記載
「コミット」ボタンをクリック

どのタスクでファイルのどの場所を修正したのか履歴を残すことで後からマージリクエストを他の人から見てもらう際に分かりやすくなる。
例)
下の図はGit Graphでコミットとマージの履歴が可視化されたもの
青がMainブランチ、赤が作業ブランチ
青のブランチでいくつか作業が行われた後にMainにマージされているのがわかる。
※緑はコンフリクト発生したためGithub管理画面で修正作業をしたため発生している

プルリクエスト作成(Push&Marge)
コミットした内容を本番環境へ結合するためにリクエストを行う。
ここで作成したプルリクエストを他者にチェックしてもらい「Approve」をもらった後に本番環境にマージする。
VS_code側でGithubのアドオンを入れておくと、以下のようなGUIからpull requestの作成ができる。

作業ブランチとマージ先ブランチを指定し、
マージ内容を説明するタイトル、Discriptionを記入する

Github管理画面側に以下のようなPull requestが作成される。
「Merge pull request」ボタンを押すとマージが完了する。

コンフリクト修正
Clone、Fetch後に自分が作業しているファイルに他の誰かが修正を加えると発生。
Github側ではどちらの修正が正しいのか判断できないためMargeができなくなってしまう。
マージをできるようにするためにはコンフリクト解消作業が必要になる。
作業自体は同じだがやり方は以下2通り考えられる。
Githubコンソールの「Resoleve conflicts」から差分を確認し修正
ローカルリポジトリ側で「Git marge」コマンドを使って差分を確認し修正
