Git で既存のタグを移動する
この記事では、Git でのタグの移動について説明します。特にチームで作業する場合は、プロジェクトのタイムラインが混乱する可能性があるため、タグを移動することはお勧めしません。
それでも、Git を使用すると、必要なときにタグを移動できます。実際の例を見てみましょう。
Git で既存のタグを移動する
タグを最近のコミットに移動するシナリオをシミュレートするために、タグ V1
を作成し、いくつかのコミットを作成して、タグを最近のコミットに移動しようとします。始めましょう。
これは、ローカルリポジトリのコミット履歴です。
$ git log --oneline
git tag
コマンドを使用して、V1
タグを Sixth Update
コミットに配置します。
$ git tag V1
git log
の出力からわかるように、タグは Sixth Update
にあります。リポジトリ内のファイルを編集して、変更をコミットしましょう。
これが新しいリポジトリのコミット履歴です。
$ git log --oneline
git tag
コマンドを実行しようとすると、このエラーが発生します。
$ git tag V1
fatal: tag 'V1' already exists
いつでも別のタグを作成できますが、V1
タグを作成し、いくつかの変更が省略されていることに気付いたとしましょう。省略された変更をコミットした後、タグをどのように移動しますか?
Git の他のいくつかのコマンドと同様に、強制的に通過させることができます。以下に示すように、--force
オプションを指定して git tag
コマンドを使用する必要があります。
$ git tag --force V1
コミット履歴を確認しましょう。
$ git log --oneline
すでにプッシュしている場合は、リモートリポジトリへの公開に進むことができます。ただし、リモートを強制的に更新するには、--force
オプションを追加する必要があります。
$ git push origin V1 --force
Git でタグを移動するために必要なのはこれだけです。ただし、サインオフする前に、別の開発者がリモートリポジトリのタグを更新した後にプルする方法を見てみましょう。
最初のステップは、ローカルリポジトリのタグを削除することです。以下のコマンドを実行します。
$ git tag -d V1
これで、git pull
コマンドを実行して、ローカルリポジトリを更新できます。
$ git pull
これにより、ローカルリポジトリのタグが更新されます。
git tag
コマンドに --force
オプションを導入することで、Git でタグを移動できます。共同プロジェクトで作業するときは、タグの作成と移動に注意してください。
プロジェクトのタイムラインを台無しにすることができます。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn