2008-11-20 5 views
12

Ich entwickle eine Schulkorrektursoftware und entschloss mich, Github als Host für das Projekt zu verwenden. Nachdem ich etwas Code auf meiner Ubuntu-Box erstellt hatte, schob ich es zu Github und klonte es dann auf mein MacBook Pro. Nachdem ich den Code auf dem MBP bearbeitet hatte, schob ich ihn zurück nach Github. Am nächsten Morgen versuchte ich mein Repo auf der Ubuntu-Box mit einer git pull zu aktualisieren und es gab mir alle möglichen Probleme.Was ist der beste Weg, um mit Github und mehreren Computern zu arbeiten?

Was ist der beste Weg, um in dieser Situation zu arbeiten? Ich möchte nicht mein eigenes Repo forkieren und ich möchte nicht wirklich E-Mails senden oder Anfragen senden. Warum kann ich Github nicht einfach wie einen Meister behandeln und von ihm auf alle meine persönlichen Repos auf verschiedenen Computern ziehen?

+0

Haben Sie den Repo von Github zu Ihrer Ubuntu-Box geklont, bevor Sie versuchen, von Github zu ziehen? –

+0

Können Sie aktualisieren mit dem, was Sie mit "alle Arten von Ärger" meinen? Hatten Sie Schwierigkeiten beim Zusammenführen von Änderungen? – mipadi

+0

Ich habe das Repo auf meiner Ubuntu-Box erstellt und es nach Github geschoben. Ich glaube nicht, dass ich es von Github auf meine Ubuntu-Box geklont habe. Ist das notwendig? Und wenn ich alle Arten von Ärger sage, meine ich, dass ich mehrere Fehlermeldungen erhalten habe. Ich habe schließlich einen Befehl 'commit -f' verwendet und es hat funktioniert. Sorta. –

Antwort

9

Ich nehme an, Ihr Problem war, dass der Computer, auf dem Sie zuerst den Repo erstellt haben, bei der Ausgabe des Befehls git pull ausgepackt wurde.

Wenn Sie ein vorhandenes Git-Repository klonen (wie auf Ihrem zweiten Computer, dem MacBook Pro), werden Sie automatisch so eingerichtet, dass Ihre git pull Befehle die Fernbedienung automatisch mit Ihren lokalen Änderungen zusammenführen.

Wenn Sie jedoch zunächst einen Repo erstellen und ihn dann auf einem Remote-Repository freigeben, müssen Sie einige Befehle ausführen, um die Vorgänge so automatisieren zu lassen, wie es bei einem geklonten Repo der Fall ist. automatisch

# GitHub gives you that instruction, you've already done that 
# git remote add origin [email protected]:user_name/repo_name.git 

# GitHub doesn't specify the following instructions 
git config branch.master.remote origin 
git config branch.master.merge refs/heads/master 

Diese letzten paar Anweisungen konfigurieren git git pull ‚s aus diesem Repo so künftig alle Remote-Änderungen zusammenführen.

Das Folgende ist ein bisschen schamlos Eigenwerbung. Wenn Sie Ruby verwenden, habe ich ein Ruby-basiertes Tool erstellt, mit dem Sie all diese Arten von Dingen mit git Remote-Zweigen behandeln können. Das Tool heißt, wenig überraschend, git_remote_branch :-)

Wenn Sie nicht Ruby verwenden, wird mein Tool wahrscheinlich zu viel Aufwand sein, um zu installieren. Was Sie tun können, ist Blick auf an old post on my blog, wo die meisten Sachen, die grb für Sie tun kann, explizit gezeigt wurde. Peitschen Sie Ihre Git Notes Datei aus :-)

+1

Das war genau das, was ich gesucht habe. Ich benutze Ruby, aber ich versuche, mich auch in Git zurecht zu finden, und ich denke, es ist wahrscheinlich am besten, es auf die "harte Art" zu machen. :) –

+0

Das ist genau der Punkt von git_remote_branch. Jedes Mal, wenn es in Ihrem Auftrag einen Befehl ausführt, druckt es die Befehle, die es für Sie ausführt, rot aus. Es kann auch als Cheatsheet mit dem Befehl explain verwendet werden: grb explain create new_branch (anstelle des normalen Befehls grb create new_branch) :-) – webmat

+1

"GRB: Es steht nicht mehr nur für Gamma Ray Burst." –

Verwandte Themen