2016-12-25 7 views
3

Ich möchte nur den Master-Zweig in "alten Repository" zu einem Zweig "X" im "neue Repository" spiegeln. Wie mache ich das? [Um klar zu sein, ich möchte nicht das ganze Repo oder die anderen Zweige spiegeln]Wie spiegelt man einen bestimmten Zweig zu einem Zweig in einem anderen Repository?

Sobald ich dies spiegeln, werde ich irgendwann "X" nehmen und alle neuen Änderungen in den "Master" von zusammenführen das "neue Repository". Ich weiß, dass ich eine Pull-Anfrage machen kann, aber wie würde ich das über das Terminal machen?

Vielen Dank für die Hilfe.

Antwort

1

Sie können dies tun, indem Sie das alte Repository als Remote mit hinzufügen und dann einen oder mehrere Zweige mit git fetch <name> <branch> ... abrufen. Dann können Sie damit wie alle anderen entfernten Zweige arbeiten und Ihre Zweige normal mit git merge <name>/<branch> zusammenführen.

Ich würde davon abraten, außer unter bestimmten Umständen wie ein riesiger Zweig mit vielen großen Dateien (die davon profitieren würden, git-lfs zu verwenden). Es ist eine zusätzliche Komplexität, die Sie nicht brauchen.

Aufgrund der Funktionsweise von Git werden die meisten Zweige den Großteil des Repositorys gemeinsam nutzen. Sobald Sie einen offenen Zweig abholen, kommt das Abholen anderer Zweige zu geringen Kosten. Zum Beispiel ...

         Q - R - S [branch2] 
            /
A - B - F ------ G - H - I - J - K - O - P [master] 
    \  /    \ 
     C - D - E     L - M - N [branch1] 

Wenn Sie git fetch old branch1 werden Sie Commits N, M, L erhalten, K, J, I, und alles andere den ganzen Weg zurück zu A. Wenn Sie dann git fetch old branch2 wird es nur holen Q, R und S. Wenn Ihr Repository also nicht sonderlich strukturiert ist, kommt das Abrufen von Zweigen nach dem ersten zu sehr niedrigen Kosten. Könnte auch fangen holen sie alle und machen den ganzen Prozess einfacher.

Verwandte Themen