2010-07-17 5 views
8

Ich kam zu Git über Terminal, nicht GitHub und ich frage mich, wie ich eine Verbindung zwischen den beiden.Verbindung Git Zweig zu GitHub Gabel

Aus einer Kasse ich habe, habe ich einen Zweig im Terminal mit dem folgenden Befehl: git checkout -b newbranchname

Von meinem Verständnis, GitHub nennt dies „Forking“. Wie verbinde ich den Zweig meiner Box mit einer Gabel eines Checkouts auf GitHub?

(Danke im Voraus für Ihre Hilfe. Mein Hintergrund ist etwa 1,5 Jahre Subversion.)

Antwort

11

Sie vermischen ein paar Dinge.

Erstens ist ein Checkout in SVN nicht das Gleiche wie ein Checkout in Git. Was in SVN als Checkout bezeichnet wird, wird in git als Klon bezeichnet. Sie checken kein Repository aus, Sie klonen es. "Auschecken" bedeutet, zu einem bestimmten Zweig zu wechseln, der mehr oder weniger mit svn switch übereinstimmt, aber Sie können auch einen neuen Zweig im selben Schritt erstellen (das ist, was -b tut).

Also ich gehe davon aus, dass Sie git lokal verwendet haben, jetzt ein Projekt auf github erstellt haben und Ihre Änderungen an das Github Repo weitergeben möchten.

Eine Verzweigung ist eine Kopie eines vorhandenen Repo-Repos von Drittanbietern auf GitHub.Sie können den "fork" -Button drücken, um eine eigene Kopie dieses Repositorys zu erhalten, damit Sie Ihre eigenen Änderungen vornehmen können. Die andere Person kann dann alle Änderungen, die Sie vornehmen, in ihr eigenes Repository übernehmen.

Um Ihre GitHub Repo mit Ihrem lokalen Repo assoziieren Sie tun (vor Ort):

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

Ihre Änderungen drücken:

git push origin master 

Sie einige große Dokumentation für git finden Sie hier: http://git-scm.com/documentation

+0

Ihre Antwort ist mehr auf SVN-Benutzer als meine Antwort orientiert. +1 – VonC

+0

Vielen Dank für die Klarstellung. Ich schätze Ihre Hilfe! – jackiekazil

3

a/nein, das nicht Forking ist.
Sie haben eine Niederlassung in Ihrem lokalen Repo erstellt.
Sie können es zu Ihrem GitHub Repo schieben, wo es als Zweig leben wird.

Vom GitHub manual page:

Um eine lokale Niederlassung zu einem etablierten Fern schieben, müssen Sie einfach

verwenden
git push REMOTENAME BRANCHNAME 

Wenn Sie das gleiche nicht verwenden möchten, Name auf dem entfernten Zweig, den Sie verwenden können

git push REMOTENAME LOCALBRANCHNAME:REMOTEBRANCHNAME. 

b/a fork ist ein Repository-Klon auf der Seite GitHub (die Sie wiederum Klon auf Ihrem Desktop lokale Seite)

c/Wenn Sie auf den GitHub Seitenast zwischen verschiedenen Gabeln vergleichen (da wieder Gabeln existieren nur auf der GitHub-Seite; auf Ihrer Seite, Sie klonen nur Remote-Repo), können Sie!
(Nun ... Sie können seit 2 Tagen, 15. Juli 2010):
Cross-Repository Compare View: die Möglichkeit, Filialen über Repositories zu vergleichen.


Denken Sie daran, dass mit einem DVCS, Sie haben einen extra dimension to branching: publication (Push/Pull von/zu einem Remote-Repository)

einen Zweig erstellen, bedeutet nicht, es sichtbar für alle anderen auf GitHub hat.
Es ist nur lokal auf Ihrem eigenen Repo erstellt. Der Veröffentlichungsteil bleibt Ihnen überlassen.