2012-06-27 8 views
8

Ich bin relativ neu bei Git und stehe vor diesem Problem. Der Befehl git push zeigt den folgenden Fehler an. Ich werde dir von Anfang an erklären, was ich versucht habe zu tun. Ich habe ein Submodul erstellt, commited und geschoben. Der Push löst den Fehler aus. HierFehler beim Sperren von Referenzen/Köpfen/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' 

ist ein Screenshot: enter image description here

Danach habe ich versucht, einige Lösungen, aber keiner von ihnen arbeitete. Ich werde auch kurz erklären, was ich versucht habe

1: Aus dem Bitbucket Repo bemerkte ich, es gibt einige danggling commits (der rote Pfeil in Bild 2), so gab ich die folgenden Befehle zu lösen, dass git gc und git prune .

2: Ich habe auch versucht, Befehle wie git revert HEAD und git push origin HEAD --force aber keine scheinen gearbeitet .. enter image description here

Weitere Details:

$ 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 

Danke

+0

Was ist die Ausgabe von 'git show-ref refs/remotes/origin/master'? – vergenzt

+0

$ git anzeigen-ref refs/remotes/origin/master 6a47a0fd398610a75bdab8976f842dc0efd89f86 refs/remotes/ursprung/master – LivingThing

+0

Was gibt 'git fetch origin? Vielleicht sind Ihre Remote-Tracking-Zweige nicht mehr synchron oder etwas ...? – vergenzt

Antwort

5

Können Sie die folgenden Befehle versuchen

1 - Gehen Sie zu master Zweig

git checkout master 

2 - Updates erhalten von der Fernbedienung, um Ihr lokales Repository

git fetch 

3 - Aktualisieren Sie Ihr lokales Repository statt merge mit rebase. Siehe there difference between git pull and git rebase

git rebase origin/master 

4 - Schieben Sie Ihre master Zweig

git push origin master:master 
+1

Das funktionierte für mich (mit SourceTree). Einfach aber effizient. –

Verwandte Themen