2016-08-30 3 views
0

Ich habe nicht verpflichtet ein Repository von Github klonen, ist Lassen Sie nennen A, die Niederlassung MasterWie zwei verschiedene lokale Niederlassung in Git fusionieren, einer der Branche hat

dann habe ich einen anderen Zweig hat dev lokal, später, füge ich einige Dateien hinzu und commited to dev.

heute, unerwartet, ich hinzufügen und einige Dateien ändern, wenn ich auf Github begehen, git sagt:

die Remote-Arbeit, die Sie nicht vor Ort haben.

Ich stelle fest, dass die Niederlassung in Master ist, nicht die dev, so dass ich Kasse die dev Zweig, aber die neuen Dateien sind verschwunden.

Ich möchte nicht die neue Änderung an den Master-Zweig, sondern Dev-Zweig, also ich frage mich, ob ich die lokalen Änderungen in Master zu Dev-Zweig zusammenführen können?

Update: ich zurück zum Master-Zweig geschaltet und git status zeigt Auf Zweig Master, nichts zu begehen, der Befehl git push origin dev zeigt Alles auf dem neuesten Stand, so seltsam ist.

Der git reflog in master-Zweig zeigt unter:

5575415 [email protected]{0}: checkout: moving from dev to master 
696c7c5 [email protected]{1}: checkout: moving from master to dev 
5575415 [email protected]{2}: commit (amend): update 
1669e5d [email protected]{3}: commit: update 
696c7c5 [email protected]{4}: checkout: moving from dev to master 
696c7c5 [email protected]{5}: commit (initial): init dev branch 

Die git reflog in dev Zweig zeigt unter:

696c7c5 [email protected]{0}: checkout: moving from master to dev 
5575415 [email protected]{1}: checkout: moving from dev to master 
696c7c5 [email protected]{2}: checkout: moving from master to dev 
5575415 [email protected]{3}: commit (amend): update 
1669e5d [email protected]{4}: commit: update 
696c7c5 [email protected]{5}: checkout: moving from dev to master 
696c7c5 [email protected]{6}: commit (initial): init dev branch 
+1

Können Sie Ihre Commits vom Master übernehmen? – Dezza

+0

@haolly, können Sie den Inhalt Ihres Reflog mit dem Befehl 'git reflog' posten? Wenn die Liste lang ist, sollten die letzten 25 Einträge ausreichend sein. Dies wird helfen, die genaue Reihenfolge der Aktionen zu bestimmen. –

+0

@KevinBurdett Vielen Dank für Ihre Antwort, ich habe die Ausgabe in Frage gestellt –

Antwort

0

Sie können nicht schnell vorwärts (git pull) hier verschmelzen.

  1. Seien Sie zuerst auf Ihrem Dev-Zweig.
  2. Dann git origin master holen
  3. Dann git merge origin/master
  4. Schließlich verpflichten git der Merge

Dies geschieht, um zu begehen, weil Git die Änderungen von Meister zu Ihrem dev Zweig nicht fusionieren können . Dies sind zwei verschiedene Zweige, daher kann der schnelle Vorlauf (oder Git-Pull) nicht durchgeführt werden. Sie müssen zuerst den Master-Zweig holen und ihn dann mit dem Dev-Zweig zusammenführen.

+0

Aber die lokalen Änderungen in Master wurde nicht auf die Fernbedienung geschoben, und ich will es nicht schieben –

+0

Sie müssen es auch hier nicht .. git commit wird nur in Ihrem lokalen Repository Commit. Außerdem wird der Master-Zweig von Git-Fetch-Ursprungs-Master nur abgerufen, so dass Sie mit Ihrem lokalen Entwicklungs-Repository zusammenführen können –

Verwandte Themen