# Mit mehreren Rechner an einem Projekt arbeiten



## propra (9. Jan 2012)

Hallo zusammen,

an meinem momentanen Projekt arbeite ich bisher an einem Laptop, den ich immer brav überall hinschleppe. Zu Hause würde ich aber gerne an meinem Desktop arbeiten.
Bisher habe ich den Code geschrieben, in mein Git Repository commited und dann nach Github gepusht. Zu Beginn meines Projektes hatte ich schon einmal das Repository auf meinen Desktop geklont und dann an beiden Rechnern am Projekt gearbeitet. Ich hatte immer mit Push und Pull gearbeitet, aber irgendwann gab es Probleme und ich habe einen Teil meiner Dateien mit altem Code überschrieben. Wie das alles genau war bzw. was ich da falsch gemacht habe, weiß ich nicht mehr.
Gerne würde ich nun einen neuen Versuch unternehmen und mit mehreren Rechnern an meinem Projekt weiter arbeiten. Daher meine Frage, wie genau aktualisiere ich die Repositories. Wenn ich es richtig verstanden habe, dann klont man es ja nur einmal.
Wäre schön, wenn hier der ein oder andere einen Tipp für mich hätte.

Vielen Dank


----------



## kama (9. Jan 2012)

Hallo,

das hört sich danach an, dass Du denn unterschied zwischen git pull und git fetch nicht verstanden hast....abgesehen davon überschrieben wird von Git nichts OHNE zu tuen...des Users...

Gruß
Karl Heinz Marbaise


----------



## TheDarkRose (9. Jan 2012)

War schon so richtig. Erstes mal der clone und danach mit push und pull. Alten Code solltest du eigentlich nicht überschreiben können, außer du hast mal falsch gemerged. Aber man kann ja immer alles rückgängig machen. Man sollte halt immer darauf achten, alles clean zu halten, also keinen push oder pull ausführen/erzwingen solange noch Code vorhanden ist, der noch nicht comitted wurde.


----------



## propra (9. Jan 2012)

Danke für die schnellen Antworten.



kama hat gesagt.:


> das hört sich danach an, dass Du denn unterschied zwischen git pull und git fetch nicht verstanden hast....abgesehen davon überschrieben wird von Git nichts OHNE zu tuen...des Users...



Davon wollte ich mich auch gar nicht freisprechen. 
Wie gesagt, ich habe da bisher keine Erfahrung und wie es genau war weiß ich auch nicht mehr. Liegt schon ein paar Tage zurück und ich hatte keine Zeit für die Fehlersuche.
Jetzt ist etwas Zeit vorhanden und deshalb der neue Anlauf.
Was ist denn dann genau der Unterschied zwischen git pull und git fetch?



TheDarkRose hat gesagt.:


> War schon so richtig. Erstes mal der clone und danach mit push und pull. Alten Code solltest du eigentlich nicht überschreiben können, außer du hast mal falsch gemerged. Aber man kann ja immer alles rückgängig machen. Man sollte halt immer darauf achten, alles clean zu halten, also keinen push oder pull ausführen/erzwingen solange noch Code vorhanden ist, der noch nicht comitted wurde.



Das kann sein, dass ich damals etwas falsch gemerged hatte. Das mit dem ausführen/erzwingen kommt mir auch irgendwie bekannt vor.


----------



## TheDarkRose (9. Jan 2012)

Ein git pull führt ein git fetch und darauf ein automatisches git merge aus.


----------



## propra (9. Jan 2012)

OK, viele Dank.

Was mache ich denn, wenn ich noch nicht so weit bin, zu commiten, aber trotzdem mein Repository aktualisieren muss? Eine Art Aktualisierungs-Commit ist bestimmt nicht sinnvoll.


----------



## kama (9. Jan 2012)

Hi,

genau dafür ist git fetch da...

Apropos: git pull führt den Merge dort aus wo man gerade ist...wenn auf master dann wird der Merge in den Master ausgeführt...ist man auf einem anderen Branch dann eben dorthin...

Gruß
Karl Heinz Marbaise


----------



## Fab1 (9. Jan 2012)

Mir sagt das alles leider gar nix wovon ihr da redet, aber wie wäre es mit https://www.dropbox.com/, oder was spricht dagegen?


----------



## TheDarkRose (9. Jan 2012)

Fab1 hat gesagt.:


> Mir sagt das alles leider gar nix wovon ihr da redet, aber wie wäre es mit https://www.dropbox.com/, oder was spricht dagegen?



Dropbox fürs coden? Heilige S*****e, Nein!


----------



## propra (9. Jan 2012)

kama hat gesagt.:


> Hi,
> 
> genau dafür ist git fetch da...
> 
> ...



Ach so, dann fasse ich mal zusammen.
Am Anfang klone ich das Repository. Danach benutze ich dann push und pull um die Repositories zu synchronisieren. Das gilt aber nur für den Fall, dass ich alles vorher commitet habe. Ansonsten nutze ich fetch und pull?



Fab1 hat gesagt.:


> Mir sagt das alles leider gar nix wovon ihr da redet, aber wie wäre es mit https://www.dropbox.com/, oder was spricht dagegen?



Ich glaube dagegen spricht, dass du einen Workspace mit verschiedenen Eclipse-Instanzen benutzt. Dies kann dann, glaub ich, zu Problemen führen, wenn Du unterschiedliche Versionen von Eclipse einsetzt. Aber genau weiß ich es auch nicht.

Dann evtl. noch kurz zur Info.
Wir sprechen hier über Git. Das ist eine Versionsverwaltung.
Sie hat neben dem Vorteil, dass man mit mehreren Rechnern und/oder mehreren Leuten an einem Projekt arbeiten kann. Der entscheidende Grund warum man aber solche Systeme einsetzt ist, dass so keine Änderungen am Quelltext verloren gehen. Es ist immer wieder möglich zu einer alten Version der Datei zurückzukehren.
Git ist momentan sehr im kommen. Ältere Versionierungssysteme sind Subversion oder CVS (noch etwas älter).
Das nur so als kleinen Einstieg. Hoffe es stimmt so und hilft dir etwas weiter.
Schaue es dir ruhig mal an. Ich denke es lohnt sich.


----------



## propra (9. Jan 2012)

TheDarkRose hat gesagt.:


> Dropbox fürs coden? Heilige S*****e, Nein!



Als Anfänger (wozu ich mich auch noch zähle) ist die Idee aber gar nicht so abwegig. Es ist schön bequem und man weiß ja nicht, was bei Eclipse dahinter steckt. Der Workspace ist da erst einmal nur ein Ordner.


----------



## maki (9. Jan 2012)

Als Anfänger sollte man auf Leute mit Erfahrung hören, Dropbox ist ungeeignet.

Stattdessen lieber Git oder Subversion lernen.


----------



## TheDarkRose (9. Jan 2012)

propra hat gesagt.:


> Ach so, dann fasse ich mal zusammen.
> Am Anfang klone ich das Repository. Danach benutze ich dann push und pull um die Repositories zu synchronisieren. Das gilt aber nur für den Fall, dass ich alles vorher commitet habe. Ansonsten nutze ich fetch und pull?



Nein. Du klonst das Repo. Danach arbeitest du ganz gemütlich daran, erstellst Branches, commitest deine Änderungen, etc. Danach pusht du deine bearbeiteten Branches in den origin zurück. Sind im zentralen Repo Änderungen vorgekommen, holst du diese dir per git fetch in deine origin/* branches ab. von diesem origin Branches, merge'st du (git merge) in deinen normalen branch (zb. origin/master in master). Somit kannst du manuell auf die Änderungen Einfluss nehmen.


----------



## propra (9. Jan 2012)

maki hat gesagt.:


> Als Anfänger sollte man auf Leute mit Erfahrung hören, Dropbox ist ungeeignet.
> 
> Stattdessen lieber Git oder Subversion lernen.



Das tue ich doch. Es war von mir hypothetisch gemeint.


----------



## TheDarkRose (9. Jan 2012)

propra hat gesagt.:


> Das tue ich doch. Es war von mir hypothetisch gemeint.



Auch nicht nur hypotetisch an Dropbox denken, da verschwendet man mehr Zeit mit der Rumärgerei, in der man schon längst Git lernen kann


----------



## maki (9. Jan 2012)

Hey propra,

war ja auch als allgemeine Aussage gedacht, hast die Unterschiede/Unzulänglichkeiten ja schon beschrieben


----------



## propra (9. Jan 2012)

TheDarkRose hat gesagt.:


> Auch nicht nur hypotetisch an Dropbox denken, da verschwendet man mehr Zeit mit der Rumärgerei, in der man schon längst Git lernen kann





maki hat gesagt.:


> Hey propra,
> 
> war ja auch als allgemeine Aussage gedacht, hast die Unterschiede/Unzulänglichkeiten ja schon beschrieben



Na dann haben wir ja alle schön aneinander vorbei geredet und was kommt raus?

Fab1 ist nun total verwirrt. :lol:


----------



## TheDarkRose (9. Jan 2012)

Es ist ja dein Thema und nicht das von Fab1


----------



## Fab1 (9. Jan 2012)

propra hat gesagt.:


> Fab1 ist nun total verwirrt. :lol:



Ne so ist es nicht . Ich hatte einen Vorschlag gebracht. Der nicht gut war, tut mir Leid. Nun weiß ich was man stattdessen benutzen sollte. Hatte das mit der Dropbox hier irgendwo mal gelesen. Vor 2 Monaten oder so. Hab den Thread dann aber nicht mehr weiter verfolgt.


----------



## Da_Tebe (10. Jan 2012)

Nun, ich nutze Dropbox da ich mit dem Netbook in der Uni arbeite und Zuhause am Desktop PC.

Wenn du alleine an dem Projekt arbeitest und dafür sorgst das du immer die selbe IDE hast (auch versionstechnisch) passiert da nichts. 
Aber wie schon geschrieben Git oder SVN sind die bessere alternative =)


----------



## TheDarkRose (10. Jan 2012)

FAIL. Genau dafür wurde git erfunden um auch offline Versionskontrolle dabei zu haben.


----------



## Da_Tebe (10. Jan 2012)

Wo ist das Problem? Ich blicks nicht


----------



## TheDarkRose (10. Jan 2012)

Dropbox ist das Problem, da es für solche Anwendungsfälle nicht gemacht wurde.


----------



## Da_Tebe (10. Jan 2012)

Man kann alles fremd entzwecken ^^


----------



## TheDarkRose (10. Jan 2012)

Kann man, bringt aber nur Probleme mit.


----------

