[解決済み] gitタグの変更日(またはそれに基づくGitHubのリリース)
質問
私は リリース を追加しています。
あるプロジェクトでは、時系列でコミットにタグを追加していませんでした。(私は明らかなコミットを見つけてタグを付け、その後、あまり明らかでないコミットを見つけました。 より古い コミットを見つけてタグを付けました。)
現在 GitHub に表示されている v1.0.1 が最新で、その前に v0.7.0 があり、v1.1.2 の前に その .
タグ付けされているコミットではなく、タグの作成日をリリース日として使用しているように見えます。タグを編集して、タグ付けされているコミットと同じ日付にするにはどうしたらよいでしょうか。
どのように解決するのですか?
<ブロッククオート警告:これは ではない は、注釈付きタグのメッセージを保持します。
概要
変更が必要な各タグについて。
- そのタグを表すコミットまで時間をさかのぼる
-
タグを削除する (ローカルおよびリモート)
- これで、GitHub 上の "Release" が Draft になり、後で削除することができます。
- 同じ名前のタグを再追加し、その日付をコミットの日付に設定するマジック起動を使用します。
- 日付を固定した新しいタグをGitHubにプッシュし直します。
- GitHub に移動し、現在ドラフト中のリリースを削除し、新しいタグから新しいリリースを再作成します。
コードで
# Fixing tag named '1.0.1'
git checkout 1.0.1 # Go to the associated commit
git tag -d 1.0.1 # Locally delete the tag
git push origin :refs/tags/1.0.1 # Push this deletion up to GitHub
# Create the tag, with a date derived from the current head
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a 1.0.1 -m"v1.0.1"
git push --tags # Send the fixed tags to GitHub
詳細
によると Git でのタグの付け方 :
リリースやバージョンバンプのタグ付けを忘れた場合、いつでもこのように遡ってタグ付けすることができます。
git checkout SHA1_OF_PAST_COMMIT git tag -m"Retroactively tagging version 1.5" v1.5
そして、これは完全に使用可能ですが、タグを時系列に並べないという効果があり、"latest" タグを探すビルドシステムを混乱させる可能性があります。しかし、心配は無用です。Linusはすべてを考えています。
# This moves you to the point in history where the commit exists git checkout SHA1_OF_PAST_COMMIT # This command gives you the datetime of the commit you're standing on git show --format=%aD | head -1 # And this temporarily sets git tag's clock back to the date you copy/pasted in from above GIT_COMMITTER_DATE="Thu Nov 11 12:21:57 2010 -0800" git tag -a 0.9.33 -m"Retroactively tagging version 0.9.33" # Combining the two... GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a 0.9.33 -m"Retroactively tagging version 0.9.33"
ただし、すでにタグを追加している場合は、上記を
git tag -f existingtag
を使用しないと、マージしようとしたときに git から文句を言われます。
Rammy:docubot phrogz$ git push --tags
To [email protected]:Phrogz/docubot.git
! [rejected] 1.0.1 -> 1.0.1 (already exists)
error: failed to push some refs to '[email protected]:Phrogz/docubot.git'
hint: Updates were rejected because the tag already exists in the remote.
代わりに、ローカルでタグを削除する必要があります。
git tag -d 1.0.1
その削除をプッシュする をリモートで実行します。
git push origin :refs/tags/1.0.1
GitHub で Releases を再読み込みすると、リリースは "Draft"- としてマークされ、ドラフトが削除されています。
さて、上の説明に従って backdated タグを追加し、最後に GitHub にプッシュします。
git push --tags
を追加し、GitHub Release の情報を再度追加します。
関連
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
giteaを使ったGitサービスの構築
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] Git を使ってタグをリモートリポジトリにプッシュするには?
-
[解決済み] Gitで特定のタグをダウンロードする
-
[解決済み] GitHub リポジトリにタグを作成する
-
[解決済み] Gitで古いコミットにタグを付けるには?
-
[解決済み] GitHub から特定のブランチをプルする
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
-
[解決済み】Gitで複数のコミットの著者名やコミッター名、Eメールを変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Git がエラーを報告しました。現在のブランチの先端が遅れているため、更新が拒否されました。
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
fatal: パス仕様 'readme.txt' がどのファイルにもマッチしなかった Solution
-
[解決済み] [Solved] Gitで既存のタグメッセージを編集するには?
-
[解決済み] シェルコマンドの出力の1行目を取得する
-
[解決済み] gitにもsvnのような無視コマンドはありますか?
-
[解決済み] Gitブランチの名前をローカルとリモートで変更できますか?重複
-
[解決済み] Git のリモート HEAD を master 以外に指定するように変更する
-
[解決済み] CVS から Git への移行: $Id$ 相当?
-
[解決済み] Git タグリスト、コミット sha1 ハッシュの表示