公開:2024年12月19日
1分で読めます
git pushコマンドで、他の開発者とバージョンやリリース情報、マイルストーンをタグを使用して共有する方法とコツをご紹介。
gitを使った開発で最もよく利用するコマンドのひとつgit push
。ローカルリポジトリのオブジェクトをリモートリポジトリに送信して更新を行うコマンドです。タグ機能と組み合わせて開発途中の特定の時点に参照しやすいように名前をつけておくことで、後から遡って異なるバージョンを比較できます。この記事ではgit push
コマンドの基本について解説していきます。
git push
タグとは、リポジトリ内でタグづけされたコミットを、リモートリポジトリにプッシュするためのコマンドです。ローカルで作成したタグをリモートリポジトリに送信し、複数人で特定のバージョンやマイルストーンを共有するのに有用です。
例えば、v1.0
というタグをorigin
という名前のリモートリポジトリにプッシュするには下記のように記載します。
git push origin v1.0
gitタグとは、本のしおりのようにプロジェクト履歴の中で特定のコミットに名前をつけられる機能です。特定のタグをタグ名で簡単に参照できることが最大のメリットで、新バージョンのリリースや、大規模な変更を実施する前のコードベースなど、その時点まで戻って参照する可能性のあるコミットにタグをつけて管理します。
gitのタグには、主に2つの種類があります。
軽量タグは、コミットに名前をつけるだけの単純なタグです。基本的にはコミットの名前とポインターですが、関連するコミットへのクイックリンクの作成などに適しています。軽量タグの作成は下記の通りです。
git tag TAG_NAME
バージョン管理のタグの場合は、次のように名付けます。
git tag v1.0
アノテーションタグは、タグの作成者、メールアドレス、作成した日やメッセージなど追加のメタデータも保存されます。アノテーションタグを作成するには、-a
でタグを作成し、-m
を指定するとコメントも同時に指定することができます。
git tag -a TAG_NAME -m "Comments"
アノテーションタグは、チームで共有すべきリリースやバージョン管理に追加の情報を含めたいときに広く使われます。
リポジトリに保存されたタグを一覧表示します。
git tag
ワイルドカード表現を使って絞り込むこともできます。
git tag -l *SEARCH WORD*
タグの内容を確認する場合はgit show
を使います。
git show TAG_NAME
これにより以下の情報が取得できます。
タグを削除するにはgit tag
コマンドのオプション-d
を指定します。削除した後、一覧から消えているか確認しましょう。
git tag -d TAG_NAME
git push
コマンドを使ってコミットやタグをプッシュする方法は以下の通りです。
git push REMOTE_NAME BRANCH_NAME
リモート名)origin
ブランチ名)mainの場合には
git push origin main
となります。
git push REMOTE_NAME TAG_NAME
リモート名)origin
タグ名)v1.0の場合、
git push origin v1.0
となります。
git push
と git push
タグを使用する際、特にチームのバージョン管理に使われている場合に避けた方が良いことがあります。それは、一度プッシュしたタグの名前を変更することです。逆にまだプッシュしていないタグは、git tag -f TAG_NAME Commit#
で上書きして、正しい名前にしてからプッシュするようにしましょう。またチーム内で管理されるタグ名は、一意に決定されその存在が担保されることが何より重要になるので、プッシュする前にはタグ名を十分確認するようにしましょう。
簡単にgitタグを使う方法をお探しの方におすすめなのが、プラットフォームを使用することです。中でもGitLabはリモートリポジトリのホスティング、インターフェースの提供、変更内容のコードレビュー、プッシュされたコードの自動ビルド、テスト、デプロイまで実施 できます。また、プロジェクトやリポジトリごとにアクセス権を細かく管理することができるため、セキュリティの確保も可能です。
バージョン管理に使えるGitLabの無料トライアルはこちらからお申し込みいただけます。
git push REMOTE_NAME TAG_NAME
リモート名)origin
ブランチ名)mainの場合には
git push origin main
となります。
プッシュしたタグを削除するコマンドは、
git push –delete REMOTE_NAME TAG_NAME
リモート名)origin
タグ名)v1.0の場合、
git push –delete origin v1.0
となります。
コミットにタグをつけてリモートリポジトリに保存することで、ソフトウェアのリリース情報や作成者・作成日・コメントを保存できます。逆に、 git fetchまたはgit pull を使用してリモートからタグを取得し、ローカルリポジトリに反映させることもできます。大幅な修正やベンチマークとなるリリースが行われた場合にも直近のバージョンや該当のリリースに戻って特定時点でのコミットを確認できます。
監修:佐々木 直晴 @naosasaki
(GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト)