2015-08-10 34 views
31

Podczas próby push poprzez drzewa źródłowego, otrzymuję następujący błąd:„Aktualizacje zostały odrzucone, ponieważ tag już istnieje”, gdy próbuje wcisnąć 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 

nie wprowadzać żadnych zmian do tego tagu o ile mi wiadomo. Jak mogę to naprawić?

Odpowiedz

66

Jeżeli nie dokonano żadnych zmian lokalnych do znacznika, które chcesz zachować, a następnie można usunąć znacznik, który został odrzucony, ponieważ już istnieje (example_tag w tym przypadku):

  1. Kliknij znacznik prawym przyciskiem myszy i wybierz, aby go usunąć (pamiętaj, aby odznaczyćUsuń znacznik ze wszystkich pilotów).
  2. Wybierz opcję Pobierz (Pobierz i zapisz wszystkie znaczniki lokalnie, aby nie trzeba było włączyć).
  3. Powinieneś teraz mieć ten tag, który został właśnie usunięty z powrotem, i próba Push nie będzie już wyświetlać tego komunikatu o błędzie.

Powodem jest to powszechne w SourceTree jest fakt, że wszystkie tagi opcja push jest ustawiony na na domyślnie. (Innym sposobem na ukrycie tego błędu jest usunięcie zaznaczenia tej opcji).

+0

ratownik. Dziękuję za to. –

+0

"Pobieranie i przechowywanie wszystkich tagów lokalnie nie musi być włączone" jest to, co dla mnie zrobiła, sprawdzenie, czy spowodował problem sam się powtórzył. – Tom

44

Powinieneś być również w stanie rozwiązać to w bicie git (kliknij na przycisk "Terminal" w interfejsie drzewa źródłowego). Wpisz:

git pull --tags 
0

Tak, rzeczywiście, najpierw przeciągnij znaczniki przed tobą push --tags. Rozwiązałem mój problem.