2010-07-17 22 views
8

Sono venuto a git tramite terminale, non GitHub e mi chiedo come faccio a stabilire una connessione tra i due.Collegamento del ramo git alla forcella GitHub

Da un checkout che ho, ho creato una filiale a terminale eseguendo questo comando: git checkout -b newbranchname

Dalla mia comprensione, GitHub chiama questo "forking". Come collego il ramo sulla mia scatola a un fork di un checkout su GitHub?

(Grazie in anticipo per il vostro aiuto. Il mio background è di circa 1,5 anni di sovversione.)

risposta

11

Stai mescolando alcune cose.

Prima di tutto, un checkout in SVN non è lo stesso di un checkout in git. Quello che viene chiamato un checkout in SVN è chiamato clone in git. Non si controlla un repository, lo si clona. "Check out" significa passare a un ramo specifico, che è più o meno lo stesso di svn switch, ma hai anche la possibilità di creare un nuovo ramo nello stesso passo (questo è ciò che fa -b).

Quindi presumo che tu stia usando git localmente, ora hai creato un progetto su github e vorrei inserire le tue modifiche nel repository github.

Un fork è una copia di un repository di terze parti esistente su github.Puoi premere il pulsante "fork" per ottenere la tua copia di quel repository, permettendoti di apportare le tue modifiche. L'altra persona può quindi inserire le eventuali modifiche apportate al proprio repository.

per associare il repo github con il repo locale si fa (in loco):

git remote add origin [email protected]:<username>/<repo>.git 

Per spingere le modifiche:

git push origin master 

Potete trovare alcune grandi documentazione per git qui: http://git-scm.com/documentation

+0

La tua risposta è più orientata ad aiutare gli utenti SVN della mia risposta. +1 – VonC

+0

Grazie mille per il chiarimento. Apprezzo il vostro aiuto! – jackiekazil

3

un/no, che non è che si biforcano.
Hai creato una filiale nel repository locale.
Puoi inviarlo al repository GitHub, dove vivrà come un ramo.

Dal GitHub manual page:

a spingere una filiale locale a una distanza stabilita, è sufficiente utilizzare

git push REMOTENAME BRANCHNAME 

Se non si desidera utilizzare la stessa nome sul ramo remoto che è possibile utilizzare

git push REMOTENAME LOCALBRANCHNAME:REMOTEBRANCHNAME. 

b/a fork è un clone repository sul lato GitHub (che si può a sua volta clone sul desktop lato locale)

c/Se si desidera confrontare i rami tra le diverse forcelle sul lato GitHub (in quanto, ancora una volta , le forche esistono solo sul lato GitHub; dalla tua parte, stai solo clonando un repo remoto), puoi!
(beh ... è possibile partire da 2 giorni, 15 luglio 2010):
Cross-Repository Compare View: la possibilità di confrontare i rami tra repository.


Ricordate che con un DVCS, si dispone di un extra dimension to branching: publication (push/pull da/a un repository remoto)

Creazione di un ramo non significa avere visibile per tutti gli altri su GitHub.
È appena creato localmente sul proprio repository. La parte di pubblicazione è lasciata a te.