2013-07-18 5 views
35

I kloniert, um eine Repo die diese geklonten NUR diesen ZweigWie kann ich einen --einzelnen Zweigklon rückgängig machen?

git clone -b <branch name> --single-branch <github url> <target directory>

verwenden, aber jetzt möchte ich an den Master und anderen Branchen wechseln. Gibt es einen anderen Weg, als den Rest des Repos zu klonen und neu anzufangen, dass ich die Präferenz --single-branchs rückgängig machen kann?

Antwort

56

Sie können Git sagen alle Zweige so ziehen:

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" 
git fetch origin 

Wenn Sie in .git/config aussehen, ist es in etwa so aussehen werde:

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
    ignorecase = true 
    precomposeunicode = false 
[remote "origin"] 
    url = https://github.com/owner/repo.git 
    fetch = +refs/heads/master:refs/remotes/origin/master 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
    rebase = true 

Ich verglich dies zu einem vollständigen Klon und sah, dass der einzige Unterschied das "Holen" unter [remote "origin"] war.

Hinweis: Ich verwende Git Version 1.8.2. Die Konfigurationsoptionen haben sich möglicherweise geändert, wenn Sie eine ältere Version von Git ausführen. Wenn meine Befehle nicht funktionieren, dann würde ich empfehlen, durch .git/config zu sehen, ob Sie etwas Ähnliches sehen können.

+1

Nur du einen besonderen Dank anbieten wollte, weil ich ein Heck tat viel lesen und googeln und konnte so etwas nicht finden. – danieltalsky

+1

Gut zu helfen. Das Kommandozeilenprogramm 'git' ist unglaublich mächtig (die meisten Befehle sind in anderen Befehlen implementiert), so dass Sie eine ganze Menge damit anfangen können, wenn Sie erst einmal verstanden haben, wie das Repository angelegt ist (im Grunde wie der Ordner '.git' funktioniert). – henrikhodne

+0

Dies funktionierte nicht für mich - nach dem Ausführen dieser Befehle scheitert 'git show-ref tags' immer noch. – felixfbecker

-1

Fügen Sie einfach das Original-Repo als neue Fernbedienung hinzu und arbeiten Sie von dort ab?

git remote add path/to/myrepo myNewOrigin 
git fetch myNewOrigin 

Sie können sogar Ihre aktuellen ‚Ursprung‘ remote und benennen ‚myNewOrigin‘ auf ‚Herkunft‘ löschen, wenn Sie wollen.

Von dort können Sie ziehen/zusammenführen/Rebase.

20

Wenn Sie einen einzelnen Zweig hinzufügen möchten, können Sie wie folgt vorgehen:

git remote set-branches --add origin [remote-branch] 
git fetch origin [remote-branch]:[local-branch] 

Arbeiten mit git Version 1.9.1

+0

Ich bin in dich verliebt – user1760150

Verwandte Themen