はじめに
プロジェクトで絶対使うGit。
今までなんとか使ってきたけど正直苦手意識がある。。。
改めて整理し、少しでも苦手意識をなくしたい!ってことで必要な部分を改めて理解していきたいと思います。
対象者
Git初心者や、触ったことあるけどなんとなく使ってるなーって人向けです。
Gitの構成
Gitの環境は大きく ローカル環境 と リモートリポジトリ の2つに分かれています。
また、 ローカル環境はさらに ワークツリー 、 ステージングエリア 、 ローカルリポジトリ の3つのエリアに分けることができます。
それぞれの説明は以下の通りです!
環境 | 説明 | |
---|---|---|
ローカル環境 | 自身のPC内 | |
ワークツリー(作業ディレクトリ) | 実際に編集している作業ディレクトリで、ファイルの実態がある。 | |
ステージングエリア | コミットする変更を一時的に保存しておく場所 | |
ローカルリポジトリ | PC内にあるGitの履歴管理用の領域(コミット履歴やブランチなどを保持) | |
リモートリポジトリ | GitHubなどにある共有用のリポジトリ(複数人で共同開発するときに使う) |
① 基本の流れ(ファイル作成、更新)
ローカルでファイルを作成・編集した後に、リモートリポジトリまで反映させる流れです。
まず、 ワークツリー内での作業内容 を ステージングエリアに登録(add) していきます。
作業内容が出揃ったら、 ひとまとまり(1つのコミット) にして、 ローカルリポジトリに登録(コミット) します。
その後、ローカルリポジトリの内容を リモートリポジトリに反映(プッシュ) してほかのユーザも閲覧できるようにします。
それ以降はプロジェクトによって異なりますが、大体ベースブランチなどに マージ して、プロジェクトメンバーの修正内容を統合していきます。
② 基本の流れ(ファイル削除)
ファイルを削除した場合の流れですが、①とほぼ同じです!
ステージングエリアへの登録コマンドが addだけではなくrmでも反映可能 になるくらいです!
ファイルを削除してからaddしてもいいですし、rmを実行して削除とaddの2つをまとめて実行してもいいって感じですね!
最近はvscode上のカーソル操作でステージングエリアへの登録・取り消しとかをしている方も多いと思うので意識していない方も多いと思います。
(以降の手順は同じなのでちょっと省略しますね)
③ 基本の流れ(リモートリポジトリの内容を取得)
次は他のメンバーの修正を自身のローカル環境に取り込んだりする場合の手順になります。
1つ1つ丁寧に行うなら リモートリポジトリの内容をローカルリポジトリに反映させて(fetch) 、その内容をさらに ワークツリーに反映させる(merge) ことで自身のPC内で確認できるようになります。
それが面倒であれば、リモートリポジトリの内容を まとめてローカルリポジトリとワークツリーに反映させる(pull) ことも可能です。
(筆者は基本的にpullしてまとめて反映させますが、時と場合によるので何も考えずにpullしてしまうと痛い目を見ることになります、、、)
④ 操作の取り消し
次は操作の取り消しを行う場合です。
基本取り消しは行わない(よく確認してからadd,commit,pushを行うの)ですが、比較的使う頻度が多そうなのは、 ステージングエリアへのaddを取り消すreset ですかね。
ワークツリーの状態をローカルリポジトリの状態に戻す checkoutもありますが、最近はcheckoutの代わりにswitchやrestoreが推奨されているそうです。
最後に
実際の流れを想定して、よく使う操作を整理してみましたがいかがでしたでしょうか?
とても基本的なことばかりですが、個人的にはいい復習になったかと思いますが、皆さんの助けにもなっていれば幸いです!
参考資料
いちばんやさしいGit&GitHubの教本 第2版 人気講師が教えるバージョン管理&共有入門 (「いちばんやさしい教本」シリーズ)