エンジニアには不可欠な存在であるGitらしいので、とりあえずGit/GitHubで自分のコードを保存しておきたいので、まずは、Gitの基礎、基礎概念をまとめメモ。
Gitのメリット
❶ 作成しているプロジェクトのバージョン管理
❷ 保存しているバージョンへすぐに戻すことが可能
❸ チーム開発
❹ OSS(オープンソースソフトウェア)への参加
Gitの仕組み
Git/GitHubはGitHubのようなサーバーに保存するスペース(リポジトリ)と自分のpc上にあるスペース(ローカルリポジトリ)がある。今回はまず、そのローカル側の基本操作からやる。
ローカル基本操作① - 初期化

最初にローカルのリポジトリを作成。
git init .
ローカル基本操作② - 記録

ローカル環境において、3つのプロセスがあります。
ワークツリー(作業環境)
→ステージ(複数ファイルの一部をCommitしたい際の一時的な保存場所)
→変更記録する場所
ステージ ... a, b, cファイルがあり、a, b, cそれぞれを分けて、commitしたいとき、aをaddしてコミット、bをaddしてコミット、cをaddしてコミットすることができる。
まず、ワークツリーからステージへのアップロード
git add .
//.の部分にファイル名が入るが.とすることで全変更ファイルをステージに上げます。
続いて、ステージからローカルリポジトリへのコミット
git commit -m "メッセージ"
//ローカルリポジトリへ変更をコミットする際に、コメントを付与することも可能。
ローカル基本操作③ - 状況の確認

まずは、
git diff //リポジトリとワークツリーの差分を確認できる
git diff --staged //リポジトリとステージの差分チェック
git status //変更ファイルを確認
主に、 コミット前の確認などに使う。
ローカル基本操作④ - 履歴の確認

ローカルリポジトリの変更履歴の確認
git log
ローカル基本操作⑤ - 元に戻す

git restore ファイル名
//ワークツリーの変更を取り消す
git restore --staged ファイル名
//ステージにあげた変更をワークツリーに戻す。
ローカル基本操作⑥ - ブランチ
チームで開発を進める上で、一つのファイルを複数人で編集を進める。それぞれの編集するタスクをgitに登録して、分岐(ブランチ)させて開発を進めることでエンジニア同士が他のエンジニアの編集を上書きすることを避けるためにブランチさせて、後でmergeすることで安全に進めることができる。

開発を行う上で、メインの開発ブランチのことをmainという。
ローカル基本操作⑥a - ブランチの作成
git branch ブランチ名
ブランチ一覧を表示
git branch
git branch -a //-a githubにあるブランチを全て含めて表示
ローカル基本操作⑥b - ブランチの切り替え
git switch ブランチ名
git switch -c ブランチ名 //ブランチの作成から切り替えまで一気にできる。
ローカル基本操作⑥c - ブランチの変更をマージする
git merge ブランチ名
git merge origin/ブランチ名
//github上(リモートレポジトリ)の内容を自分のローカルにmergeしたい時に使う
//git merge origin ブランチ名もあるので、違いに注意。