前回に引き続き、Windows シェル拡張(エクスプローラに機能を追加)で Git を操作できる無料の Git クライアントソフトウェア TortoiseGit を用いて、 Git の公式サイトの reset コマンドの説明のページ「Git – リセットコマンド詳説」でリセットの解説に用いるリポジトリ例を実際に作成する手順を紹介します。

※ TortoiseGit-2.17.0.2-64bit を使用します。
前回の記事
コミットしたファイルの内容を変更
前回、リポジトリのブランチ(例では master ブランチ)に初めてコミットしたテキストファイルを編集します。
Git でバージョン管理されているファイルの内容が変更されると、 TortoiseGit がそれを検知して、エクスプローラのアイコンの一部が緑色から赤色に変わりました。

ファイルの変更をコミットするために、次のコミットの対象を置いておくステージングエリアに追加しようとしましたが、 TortoiseGit のメニューに「追加」は表示されません。

コマンドプロンプトで git status コマンドでワーキングツリーとインデックスの状態を確認すると、ファイルの変更が検知されていることが赤色の文字色で表示されています。
そして、その変更をコミットするために git add や git commit -a コマンドを使用することが案内されえています。

git commit -a の -a オプションは、変更されたファイルを自動的にステージングエリアに追加して、コミットを行います。
TortoiseGit で「追加」メニューが選択できず、まだステージングエリアに追加されていないことから、 TortoiseGit では、変更されたファイルを git commit -a によって、変更を検知しているファイルを自動的にステージングエリアに追加してコミットするのかもしれません。
by using the
-a
switch with thecommit
command to automatically “add” changes from all known files (i.e. all files that are already listed in the index) and to automatically “rm” files in the index that have been removed from the working tree, and then perform the actual commit;commit コマンドで -a スイッチを使用すると、すべての既知のファイル (つまり、インデックスに既にリストされているすべてのファイル) からの変更が自動的に「追加」され、作業ツリーから削除されたインデックス内のファイルが自動的に「rm」され、実際のコミットが実行されます。Git – git-commit Documentation
ファイルの変更をコミット
変更が検知されて赤色のアイコンがついている、変更したファイルを右クリックして表示されるメニュー「Git コミット (C) -> “ブランチ名”…」を選択します。

前回と同様に、コミット先のブランチ(例では master)を確認して、コミットの説明文を「メッセージ」項目のテキストエリアに記述します。
下側のリストで、コミットしたいファイルだけをチェックして「コミット」ボタンを押します。
※変更が検知されたファイルは、ステージングエリアに追加しなくても、リストに追加されています。

「コミット」ボタンを押す直前、「コミット」ダイアログを開いた状態で git status コマンドでワーキングツリーとインデックスの状態を確認しても、先ほどと同じく、ファイルの変更は検知されていますが、git status の結果を見るとステージングエリアには追加されていません。

コミットが成功すると、ファイルのアイコンの赤色から緑色に変わり、ブランチに記録されているファイルのデータと、作業ディレクトリのファイルのデータの差分がなくなりました。
ダイアログを「閉じる」ボタンで閉じます。

以上で、Git の公式サイトの reset コマンドの説明のページ「Git – リセットコマンド詳説」でリセットの解説に用いてるリポジトリ例と同じ状態のリポジトリを作成できました。
コミットの履歴(ヒストリー)を確認
ファイルを Git バージョン管理に追加する1回目のコミットと、ファイル内容の変更を記録する2回目のコミットを履歴(ヒストリー)として確認してみましょう。
エクスプローラで、リポジトリフォルダを開いて、右クリックで表示されるメニュー「 TortoiseGit 」→「リビジョングラフ」を選択します。

最新のコミットは、上側の赤色の枠のブランチ名(例では master)で表されています。
ブランチ名の上にマウスオーバーすると、最新(2回目)のコミットの説明(メッセージやコミットをした時刻やユーザーの情報)が表示されました。
その下側の、1つ前のコミットは、そのコミットに割り当てられた一意のコミットハッシュという英数字の羅列で管理されています。
そのコミットハッシュの上をマウスオーバーすると、1回目のコミットの説明が表示されました。

前回も含めたコマンドプロンプトによる確認の結果は以下です。
Microsoft Windows [Version 10.0.19045.5737]
(c) Microsoft Corporation. All rights reserved.
G:\Dev\StudyTortoiseGit\Repo1>git branch
G:\Dev\StudyTortoiseGit\Repo1>git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: file.txt
G:\Dev\StudyTortoiseGit\Repo1>git branch
* master
G:\Dev\StudyTortoiseGit\Repo1>git status
On branch master
nothing to commit, working tree clean
G:\Dev\StudyTortoiseGit\Repo1>git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: file.txt
no changes added to commit (use "git add" and/or "git commit -a")
G:\Dev\StudyTortoiseGit\Repo1>git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: file.txt
no changes added to commit (use "git add" and/or "git commit -a")
G:\Dev\StudyTortoiseGit\Repo1>
今回はここまで
次回に続きます。
参照サイト Thank You!
- Git
- TortoiseGit – Windows Shell Interface to Git
- Git – リセットコマンド詳説
- Git – git-checkout Documentation
- Git – git-add Documentation
- Git – git-status Documentation
- Git – git-add Documentation
- Git – git-commit Documentation
記事一覧 → Compota-Soft-Press
コメント