2016-06-09 12 views
0

Letzte Nacht, ich kodierte zur optimalen Zeit von 1 Uhr morgens, was endete einige nicht so optimale Git Verhalten (und ich bedauere jetzt auch noch mehr mit der git GUI statt Befehl Linie, aber das ist eine andere Geschichte).Git Droping Commits zwischen Client GUI & Server

Ich hatte gerade ein Commit lokal über das Desktop-Tool und drücken Sie den "Sync" -Button, um zum Master zu drücken. In diesem Moment, mitten in der Nacht, entschied mein ISP, mein Internet für 10 Minuten zu kürzen. Die Synchronisierung wurde wie erwartet beendet. Sobald meine Verbindung wieder hergestellt war, versuchte ich erneut, das Commit zu pushen, aber lokal zeigte die GUI an, dass das Commit bereits durchgeführt worden war. Ich wechselte zum Befehlszeilentool und überprüfte mit einer git status und, tatsächlich, keine geänderten Akten.

Allerdings, wenn ich my repository besuchen, sehe ich nicht das Commit oder die Änderungen auf meine Dateien angewendet. Wenn ich (online) versuche, eine der Dateien von meinem fehlgeschlagenen Festschreiben zu bearbeiten, gibt es mir einen Fehler, der einfach besagt "Datei konnte nicht bearbeitet werden". Was noch seltsamer ist, ist, dass mein Desktop-Tool Commit History auf the commit verweist, obwohl es nicht auf das Repository oder sonst auf GitHub angewendet wurde.

Es scheint, dass mein Commit in einem seltsamen Zustand zwischen Pushed und tatsächlich angewendet wird. Ich frage mich, ob jemand etwas Ähnliches erfahren hat und eine Lösung gefunden hat oder irgendwelche Ideen hat, wie man die betroffenen Dateien zumindest freischaltet und dann meine Änderungen erneut anwendet.

Danke für jede Hilfe!

Antwort

0

Ich konnte mein Problem lösen, indem ich Schreibrechte für meine Readonly-Dateien gewährte und jedem einen Bearbeitungsschritt hinzufügte. Ich habe dann diese Änderung vorgenommen und das Commit erfolgreich vorangetrieben, was wiederum dazu führte, dass das Commit vor 22 Stunden zusammen mit seinen Änderungen endlich auf GitHub angewendet wurde.

0

Verwenden Sie die Befehlszeile (oder vielleicht die GUI auch, wenn es etwas anbietet) ändern Sie Verzeichnisse in den Repo und tun "git fetch". Dadurch wird der Cache für den Remote-Status aktualisiert und Sie können dann den Push erneut versuchen.

+0

Leider hat sich daran nichts geändert. Commit wird weiterhin lokal gesendet, aber nicht in der Codehomepage von GitHub. – mattkgross

+0

Und schiebt immer noch scheitern? Das ist merkwürdig ... –

+0

Versuchen Sie, den Repo erneut an einer anderen Stelle zu klonen und dann die Commits erneut zu senden. Dies ist ein nicht wirklich guter Workaround, aber wenn das auch nicht funktioniert, dann ist das ziemlich unübersichtlich. –