Git tirando un ramo da un altro repository?

Ho un repository git locale che è un clone di un repository su github. Qualcuno ha inforcato il repository e modifiche in un nuovo ramo di un nuovo repository. Voglio spostare questo nuovo settore nel mio repository (localmente a lavorare su di esso prima di fondersi con il maestro).

Ho cercato di creare un nuovo ramo e poi tirando la forcella repository, ma si lamenta perché la nuova filiale è una copia del master ramo locale di modifiche di file, così si dice

error: Your local changes to the following files would be overwritten by merge.

Come posso tirare il ramo in altri repository in un nuovo ramo sul mio repository locale?

Spero che abbia un senso. Se non, questo è il mio repository: https://github.com/MatthewLM/cbitcoin

Come si può vedere, qualcuno ha creato un nuovo repository con il ramo “linuxBuild”: https://github.com/austonst/cbitcoin/tree/linuxBuild

Voglio quel ramo sul mio repository locale per MatthewLM/cbitcoin.

Come posso fare questo?

 

2 Replies
  1. 126

    È necessario assicurarsi che git status dimostra che non è stato classificato cambiamenti esiste nel repository locale.

    Si può fare questo prima in cui custodire i tuoi cambiamenti e di tirare in quel ramo. Poi si può applicare il vostro stash.


    Se si vuole ri-creare la struttura del ramo della forcella nel repository locale, è possibile effettuare le seguenti operazioni:

    git remote add fork <url of fork>
    git fetch fork
    git checkout -b fork_branch fork/<branch>
    

    Questo creerà il ramo locale fork_branch con la stessa storia come <branch> nella forcella, cioè fork_branch si staccherà del vostro master dove <branch> nella forcella.
    Inoltre, la vostra filiale locale ora traccia di quel ramo della forcella, in modo che si può facilmente tirare in nuove modifiche nella forcella.

    Penso che hai ancora bisogno di assicurarsi in anticipo che la vostra copia di lavoro non contiene alcuna modifica.

    • OK, grazie. Questo sarebbe grande se volevo che il mio locale modifiche e si impegna a non trovare nel ramo dalla forcella. Ma cosa succede se voglio la nuova filiale di essere esattamente come è sulla forcella repository? Che include la rimozione di qualsiasi impegna dal mio repository dopo il bivio è successo per questo nuovo ramo. Quindi, in questo modo sarebbe come se il ramo è stato fatto sul mio repository piuttosto che una forcella per uno.
    • Beh, la tua risposta è una soluzione accettabile per quello che devo fare, ma sarebbe più semplice se potessi tirare un nuovo ramo in un repository. Aspetterò un po ‘ per vedere cosa dicono gli altri.
    • Si prega di verificare l’aggiornamento. È quello che stavi cercando?
    • Beh, ho fatto usare il metodo di fusione con un altro ramo (ho appena fusa con il maestro), ma nel caso in cui si desidera solo un ramo, esattamente come viene da un altro repository, cercherò di prelevamento e di pagamento metodo che hai descritto. Grazie.
    • Utilizzato per eseguire la migrazione di un altro ramo “gh-pagine” da un’altra repo!
    • Fa questa soluzione mi permette di scaricare gli aggiornamenti da remoto ramo e come si fa a smettere di monitoraggio remoto ramo?
    • Grazie, questa risposta mi ha aiutato pure. Ho finito aggiunta di un nuovo telecomando, come hai suggerito e riassegnato i rami che contro il branch master di repository principale. Ha funzionato bene dopo alcuni rebase errore riparazioni. Ho rimosso la temporanea remoto in seguito, utilizzando la SourceTree (non sono sicuro di quello che il comando git è, ma ha funzionato) e il repo sembra molto pulita ora.

  2. 16

    Metodo, senza aggiunta di telecomando.

    git checkout --orphan fork_branch
    git reset --hard
    git pull <url of fork> <branch>
    

Lascia un commento