2016-04-08 8 views
0

Ich bin mit dem folgenden Problem konfrontiert.Alte Commits und neue Commits befinden sich auf separaten Repositories, wie verketten Sie sie?

Ich wollte eine alte Software auf SourceForge gehostet werden. Ich habe es auf die einfache Art gemacht, ich habe gerade die neueste Version des Codes heruntergeladen und die Dateien zu einem Git Repo hinzugefügt.

Daher Commit # 987 Commit # 1 auf meinem Git Repo. Ich begann dann daran zu arbeiten.

Dann habe ich festgestellt, dass es besser wäre, eine Aufzeichnung der alten Commits zu behalten, die frühere Entwickler auf SourceForge gemacht haben.

Ich habe es geschafft, ihre Repo in Git umwandeln.

Also, um dies zu veranschaulichen, habe ich jetzt zwei Repositories. Repo A ist der erste, den ich gemacht habe, der nur meine Commits enthält, aber nicht die Historie der vorherigen Commits, die von den Entwicklern gemacht wurden. Repo B ist eine Konvertierung von svn nach git des SourceForge Repo.

Ich weiß, ich kann Commits von Repo A zu Repo B übertragen, weil A neuere Commits enthält. Aber ich möchte ältere Commits von Repo B zu Repo A übertragen.

Ist es möglich?

Antwort

3

AFAIU, am Ende wollen Sie ein Repo mit allen alten und neuen Commits.

Die einfachste für mich sein würde:

mit einem Repo
  • Start der alten enthält, begeht
  • eine Fernbedienung in diesem alten Repo hinzufügen, mit den neuen Commits in einem Repo zeigen und holt
  • kirsch holen die neuen Commits auf Ihrem master Zweig, der die alte

begeht enthält so würde es sieht im Grunde wie

cd old_repo 
git remote add new ../new_repo 
git fetch --all 
# at this point we have two streams of commits with no common ancestor 

#let's say you have 20 new commits, in a single branch 
git cherry-pick new/master~20 
git cherry-pick new/master~19 
... 
git cherry-pick new/master~1 
git cherry-pick new/master 
Verwandte Themen