Mit mehreren Rechner an einem Projekt arbeiten

propra

Aktives Mitglied
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
 
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
 
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.
 
Danke für die schnellen Antworten.

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?

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.
 
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.
 
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
 
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

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?

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.
 
Als Anfänger sollte man auf Leute mit Erfahrung hören, Dropbox ist ungeeignet.

Stattdessen lieber Git oder Subversion lernen.
 
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.
 
Hey propra,

war ja auch als allgemeine Aussage gedacht, hast die Unterschiede/Unzulänglichkeiten ja schon beschrieben 🙂
 
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.
 
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 =)
 

Zurück
Oben