Git | VS Codeにおける”source control”の説明

Gitとは,プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである.ソースコードの変更履歴を順々に記録し,いつ,だれが,どのファイルのどの箇所を変更したかが分かり,記録の際に変更箇所についてのメッセージを付与することもできる.必要であれば,変更履歴に基づき,ソースコードを戻すこともできる.
VS Codeとは,Visual Studio Codeを正式名称とするMicroSoftが提供している人気のある無料のテキストエディタである.
VS Codeでは,Gitと同じような機能である"source control"が付属しているので,この詳細を以下に記す.
実施環境
Windows 11
Visual Studio Code (VS Code) 1.103.2
shelokuma tech blog | バージョン確認方法
VS Codeにおける"source control"のありか
Gitは以下URLを参照しインストールした.
shelokuma tech blog | Git | Windows向けGitのインストール方法
また,GitHubは以下URLを参照し登録した.
shelokuma tech blog | GitHubの登録方法
VS Codeを開く.

以下画面がVS Codeの内容になる.画面の左端の赤枠が"source control"となる.

“source control"をクリックし,下矢印をクリックすると,Gitと同じ機能である以下操作を選択することができる.これらの操作について,以下にて説明する.
- Commit
- Commit (Amend)
- Commit & Push
- Commit & Sync

“source control"の詳細
VS Codeの"source control"をクリック後,Gitと同じ機能である以下操作について説明する.
- Commit
- Commit (Amend)
- Commit & Push
- Commit & Sync
Commit
通常 “git add <ファイル名>",もしくは"git add <ディレクトリ名>"によって,ワークツリーの変更をステージに追加する.VS Codeではこの処理が自動的に実行されている.
そのため,"Commit"は,現在ステージングされている変更 (“git add"されたファイル) をローカルリポジトリに保存する機能となり,以下コマンドと同等の動作となる.
git commit -m "message"
この変更はローカルのGit履歴に記録されるだけで,GitHubにはまだ送られない.まずローカルに変更を記録したいときに使われる.
Commit (Amend)
“Commit (Amend)"は,直前のコミットを修正する機能となり,以下コマンドと同等の動作となる.
git commit --amend
直前のコミットのメッセージの修正するときなどに使われる.なお,すでにリモートにPush済みのcommitをamendすると履歴が食い違うため,基本はローカルのみで使われる.
Commit & Push
“Commit & Push"は,ローカルでcommitした後,すぐにGitHubなどにPushする機能となる,以下2つの連続したコマンドと同等の動作となる.
git commit -m "message"
git push
作業が完了したので,ローカルの変更をするにGitHubに反映したいときやチーム開発で他のメンバーにすぐに共有したいときに使われる.
Commit & Sync
“Commit & Sync"は,PushとPullを同時に行う機能となる.以下3つの連続したコマンドと同等の動作となる.
git commit -m "message"
git pull
git push
自分の変更を反映すると同時に,ほかの人の変更も取り込みたいときに使われる.チームで同じブランチに作業している場合,リモートとの差分があっても自動で動機してくれる.
なお,他の人との変更とコンフリクトをすると,その場で対処する必要が出てくる.そのため,"Commit & Push"をしてから,別途Pullを実行するほうが安全かもしれない.
“source control"のまとめ
上記で説明した"source control"をまとめた表が以下になる.
操作 | ローカル保存 | GitHubへ反映 | GitHubから取得 |
---|---|---|---|
Commit | ○ | × | × |
Commit (Amend) | ○ (直前のcommit修正) | × | × |
Commit & Push | ○ | ○ | × |
Commit & Sync | ○ | ○ | ○ |
以上