2016-12-09 2 views
1

Ich habe derzeit ein Git-Repository, das ich auf GitHub hochgeladen habe. Als ich in meiner Schule war, wollte ich den Code entwickeln und das Repository herunterladen (ohne den Ordner ".gi t", also habe ich gerade den Code selbst).Kombinieren Sie zwei Git-Ordner

Ich habe viele Änderungen und mehrere Male durchgeführt, aber jetzt bin ich zu Hause Ich möchte die neuen Commits zusammenführen, die ich auf dem neuen Ordner auf dem alten gemacht habe. Hier

ein Beispiel:

Original-Ordner

Initial commit [with no code] 
Commit 1 
Commit 2 

Neuer Ordner

New initial commit (with the code of commit 2) 
Commit 3 
Commit 4 
Commit 5 

Jetzt möchte ich 3 Commit hinzuzufügen, Commit 4 und Commit 5 an die ursprünglichen Ordner. Wie kann ich es tun ?

+0

Vielleicht fehlt mir etwas, aber ist nicht so einfach wie das Verschieben des neuen Ordners in den ursprünglichen Ordner? – Mikel

+0

Nein, weil die Commits, die ich im ursprünglichen Ordner gemacht habe, nicht im neuen Ordner vorgenommen wurden. In der neuen, die den Code nach 'Commit 2 'enthält, initialisierte ich ein ** neues ** Git Repository und machte Commits darin. Jetzt möchte ich die Commits, die ich an dem neuen Repository gemacht habe, zu dem ursprünglichen hinzufügen. – ClementNerma

Antwort

1

Sie ein Repo in der anderen holen kann, und dann, wenn Sie sie wollen fusionieren

Ein Merge wäre nur möglich since git 2.9 wenn die Zweige keine gemeinsame Geschichte hat

git merge --allow-unrelated-histories a b 

In Ihrem Fall, Sie konnte direkt pull from the second repo:

git remote add second_repo /path/to/second/repo 
git pull second_repo master 

das genug sein wird, die Commits aus dem zweiten Repo zurück in die ersten zu erhalten.

+0

Die Methode, die Sie angegeben haben, funktioniert nicht. Wenn ich den 'git pull'-Befehl ausführe, sagt es mich' fatal: weigert sich, nicht verwandte Geschichten zusammenzuführen'. Wenn ich 'git merge --allow-unrelated-histories second_repo master' mache, zeigt es mir, dass es Konflikte im Code gibt, aber es scheint keinen Konflikt in Dateien zu geben ... – ClementNerma

+0

@ClementNerma git status listet Ihnen die zu reparierenden Dateien auf – VonC