Git上でファイル管理する際に、40桁のコミットIDが自動で採番されるが、このコミットIDにタグ名を付与することで、分かりやすい別名を付けることができる。
今回は、Git上でのコミットにタグ付けしてリモートリポジトリに反映してみたので、その手順を共有する。
前提条件
下記記事の手順を、リモートリポジトリ名=git-tag-pushとして実行済であること。
コミット履歴の確認
前提条件に記載した操作を行った後で、コミット履歴を確認した結果は、以下の通り。
1)「git log」コマンドで、ローカルリポジトリのGitコミット履歴を確認した結果は以下の通りで、1回分のコミット履歴が確認できる。
2) GitHub上で、リモートリポジトリのコミット履歴を確認するために「1 commit」をクリックした結果は以下の通りで、ローカルリポジトリと同様の1回分のコミット履歴が確認できる。
コミット操作(2回)を実行後、コミットにタグ付け
コミット内容の変更を確認するため、コミット操作(2回)を実行し、2回分のそれぞれのコミットにタグ付け後、リモートリポジトリに反映する。その手順は、以下の通り。
1) ローカルリポジトリ上で、以下のファイル(add_file_1.txt)を追加する。
追加したファイルをGit Bash上で確認した結果は、以下の通り。
2) 追加したファイル(add_file_1.txt)を、「git add .」「git commit -m (コミット時のメッセージ)」コマンドを利用して、ローカルリポジトリにコミットする。
3) ローカルリポジトリ上で、以下のファイル(add_file_2.txt)を追加する。
追加したファイルをGit Bash上で確認した結果は、以下の通り。
4) 追加したファイル(add_file_2.txt)を、「git add .」「git commit -m (コミット時のメッセージ)」コマンドを利用して、ローカルリポジトリにコミットする。
5) まだコミットへのタグ付けをしていないので、以下のように「git tag」コマンドを実行すると、何も表示されない。
6)「git tag -a (タグ名) -m (タグ付け時のメッセージ)」コマンドを利用すると、直近のコミットに対してタグ付けをすることができる。その後、「git tag」コマンドでタグの一覧表示を、「git show (タグ名)」でタグの詳細表示を確認できる。
7)「git log」コマンドで、これまでのコミットの内容とタグ(v1.2)の内容が確認できる。
8)「git tag -a (タグ名) -m (タグ付け時のメッセージ) (タグ付けしたいコミットID)」コマンドを利用すると、指定したコミットに対してタグ付けをすることができる。その後、「git tag」コマンドでタグの一覧表示を、「git show (タグ名)」でタグの詳細表示を確認できる。
9)「git log」コマンドで、タグ(v1.1)も付与されていることが確認できる。
10)「git push origin master」コマンドを利用して、ローカルリポジトリの内容をリモートリポジトリに反映する。
11)「git push origin –tags」コマンドを利用して、全てのタグをリモートリポジトリに反映する。
なお、特定のタグのみをpushするには、「git push origin (タグ名)」というコマンドを実行すればよい。
12) GitHub上で、リモートリポジトリのコミット履歴を確認した結果は以下の通りで、「Releases」に2つのタグが表示されていることが確認できる。
また、GitHub上でのコミット履歴は以下の通りで、ローカルリポジトリと同様の3回分のコミット履歴が確認できる。
タグでコミット操作(1回目)に戻す操作の実行と確認
タグを利用してコミット操作(1回目)に戻す操作を実行し確認した結果は、以下の通りで、コミットIDの代わりに作成したタグ(v1.1)を使えることが確認できる。
1)「git log」コマンドを実行して、コミットログを確認した結果は、以下の通り。
2)「git reset –hard (タグ名)」コマンドを実行することで、以下のように、指定したタグのコミットに戻ることが確認できる。
3) 上記コマンド実行後に、Git Bash上で確認した結果は以下の通りで、コミットを取り消したファイル「add_file_2.txt」が削除されていることが確認できる。
4) ローカルリポジトリの内容をリモートリポジトリに反映する処理は、以下のように、「git push origin master」コマンドだと上手くいかない。
5) 強制的に反映する「-f」オプションを付与し「git push -f origin master」コマンドを利用することで、以下のように、ローカルリポジトリの内容をリモートリポジトリに反映することができる。
6) GitHub上で、リモートリポジトリのコミット履歴を確認した結果は以下の通りで、ローカルリポジトリと同様に、3回目のコミット履歴が取り消されていることが確認できる。
ただし、タグについては、v1.2がそのまま残った状態になっている。
https://www.purin-it.com/doctor-homenet
作成したタグの削除
作成したタグは、不要になった場合は削除することができる。タグを削除する手順は、以下の通り。
1)「git tag」コマンドを実行すると、以下のように、タグ(v1.1, v1.2)が残った状態になっていることが確認できる。
2)「git tag -d (タグ名)」コマンドを実行すると、以下のように、指定したタグをローカルで削除できることが確認できる。
3)「git push -d origin (タグ名)」コマンドを実行すると、以下のように、指定したタグをリモートリポジトリで削除できることが確認できる。
4) GitHub上で、リモートリポジトリのタグを確認した結果は以下の通りで、先ほど削除したタグ(v1.2)が削除されていることが確認できる。
要点まとめ
- Gitでファイル管理する際に採番されるコミットIDに、タグ名を付与することで、分かりやすい別名を付けることができる。
- 指定したコミットに戻すコマンド「git reset –hard (コミットID)」で、コミットIDの代わりにタグ名を利用することもできる。
- Gitで付与したタグは、削除することができる。