web-dev-qa-db-ja.com

SourceTreeでプッシュしようとしたときに「タグが既に存在するため、更新は拒否されました」

ソースツリー経由でプッシュしようとすると、次のエラーが表示されます。

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree Push -v --tags Origin refs/heads/master:refs/heads/master 
Pushing to https://[email protected]/repo.git
To https://[email protected]/repo.git
 = [up to date]      master -> master
...
 ! [rejected]        example_tag -> example_tag (already exists)
updating local tracking ref 'refs/remotes/Origin/master'
error: failed to Push some refs to 'https://[email protected]/repo.git'
hint: Updates were rejected because the tag already exists in the remote.
Completed with errors, see above

私の知る限り、このタグには変更を加えていません。どうすれば修正できますか?

85
Senseful

保持するタグにローカルな変更を加えていない場合は、が既に存在するために拒否されたタグを削除します(この場合はexample_tag):

  1. タグを右クリックして削除することを選択します(必ずncheckタグをすべてのリモートから削除するチェックボックス)。
  2. フェッチオプションを選択します(すべてのタグをローカルでフェッチして保存しますnotを有効にする必要があります)。
  3. これで、削除されたタグが元に戻り、Pushを試みても、そのエラーメッセージは表示されなくなります。

これがSourceTreeで一般的である理由は、デフォルトでPush all tagsオプションがonに設定されているためです。 (このエラーを隠す別の方法は、そのオプションのチェックを外すことです。)

104
Senseful

また、git bashでこれを解決できるはずです(ソースツリーUIの[ターミナル]ボタンをクリックします)。タイプ:

git pull --tags
174
bytedev

Git Pushを確認したら、UIの下部にあるPush all tagsのチェックを外します

18
JDev-Guns

プッシュ中に「すべてのタグをプッシュ」ボタンのチェックを外してください。

enter image description here

1

はい、確かに、Push --tagsの前にタグを最初にプルします。私の問題を解決しました。

0
YoungJeXu