2012-06-27 13 views
8

Jestem relativly nowy do git i mam do czynienia z tym problemem. Polecenie git push pokazuje poniższy błąd. Wyjaśnię wam od samego początku, co próbowałem zrobić. Stworzyłem submoduł, zaangażowałem i pchnąłem go. Pchnięcie rzuca poniższy błąd.Nie udało się zablokować refs/heads/master

[email protected]_HOME ~/git/breakit-web-app (master) 
$ git push origin master 
error: refs/heads/master does not point to a valid object! 
Counting objects: 4, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (3/3), done. 
Writing objects: 100% (3/3), 421 bytes, done. 
Total 3 (delta 1), reused 0 (delta 0) 
remote: bb/acl: salmanmanekia is allowed. accepted payload. 
error: Ref refs/heads/master is at 6a47a0fd398610a75bdab8976f842dc0efd89f86 but expected 00000000000000000000000000000000000000000 
remote: error: failed to lock refs/heads/master 

To ssh://[email protected]/majuri/breakit-web-app.git 
! [remote rejected] master -> master (failed to lock) 
error: failed to push some refs to 'ssh://[email protected]/majuri/breakit-web-app.git' 

Oto zrzut ekranu: enter image description here

Potem próbowałem kilka rozwiązań, ale żaden z nich nie pracował. Będę również wyjaśnić breifly co mam stara

1: Z repo bitbucket zauważyłem istnieją pewne danggling zobowiązuje (czerwona strzałka na rysunku 2), więc dał następujące polecenia, aby rozwiązać ten git gc i git prune .

2: Próbowałem również polecenia jak git revert głowę i git wypychania pochodzenia HEAD --force ale żaden wydają się działało .. enter image description here

Inne informacje:

$ git rev-parse --symbolic-full-name master 
refs/heads/master 

$ git rev-parse master 
0da090c5cbde10ff19602a2722ae05231c30dff5 

$ git show-ref master 
0da090c5cbde10ff19602a2722ae05231c30dff5 refs/heads/master 
6a47a0fd398610a75bdab8976f842dc0efd89f86 refs/remotes/origin/master 

Thank you

+0

Jakie jest wyjście z 'git show-ref bibl/pilotów/pochodzenia/master'? – vergenzt

+0

$ git show-ref refs/remote/origin/master 6a47a0fd398610a75bdab8976f842dc0efd89f86 refs/remote/origin/master – LivingThing

+0

Co oznacza wynik "git fetch origin"? Może twoje zdalne gałki śledzenia nie są zsynchronizowane czy coś takiego ...? – vergenzt

Odpowiedz

5

Czy możesz wypróbować następujące polecenia:

1 - Idź do master oddział

git checkout master 

2 - Pobierz aktualizacje ze zdalnego do lokalnego repozytorium

git fetch 

3 - Aktualizacja lokalnego repozytorium używając rebase zamiast seryjnej. Zobacz there difference between git pull and git rebase

git rebase origin/master 

4 - Push master oddział

git push origin master:master 
+1

To działało dla mnie (używając sourcetree). Prosty, ale wydajny. –

Powiązane problemy