Github - wie geht's?

Howdy :slight_smile:

Ich arbeite schon sehr lange mit Subversion/SVN und bin damit eig. immer sehr zu frieden gewesen.
Ich wollte mir nun mal GitHub anschauen, verstehe aber generell den ganzen „Mist“ nicht.

Ok, es gibt da irgendwelche Commands zum committen, und was weiß ich. Aber wie mach ich des nun?

Ich Nutze eclipse als IDE und hab mir über den Marketplace diese beiden Sachen da von Git installiert. Aber irgendwie verstehe ich überhaupt nicht, wie ich nun zu einem Git-Repo committen bzw. downloaden kann.

Bei SVN ist das wirklich viel einfacher, man hat einfach sein Repo, fügt den hinzu und das wars.

Ist des echt so kompliziert wie es ausschaut? Wenn ja, dann bleibe ich lieber bei SVN.

Kann mir da jemand weiterhelfen?

Mfg
Bizzi

Da ist ein interaktives Tutorial für GIT http://try.github.io/levels/1/challenges/1

Was die ganzen Commands machen, etc. ist mir bewusst. Steht ja auch überall gut beschrieben.

Meine Hauptfrage ist aber eher: Wie nutze ich Git in eclipse.

Ich hab da zwar nach gegoogelt, und auch gefunden (http://blog.brockha.us/archives/443-EGit-Eclipse-mit-Git-benutzen.html) aber ich versteh die Konfiguration nicht damit es funktioniert.

Laut dem Tutorial muss ich da 5.000 Sachen machen, bei SVN wäre des nur 1. klick. Warum geht das nicht auch so mit diesem blöden Gitding? :smiley:

Musst du in EGit auch. Du machst ein Clone und fertig :smiley:

Genau, lasses des mal finden.
Ich kann noch nichtmal im package Explorer mit rechtsklick ein Projekt von einem Git-Repo hinzufügen… Nur erstellen. Und so wie ich des laut Tutorial gelesen hab ist des nur Lokal auf meiner Maschine.

Edit:
Das ist mir echt viel zu blöd mit den ganzen branches, references, remotes, working directorys und himmel blau.

Ich bleib doch lieber bei SVN.

Aber danke trotzdem.

Rechtsklick -> Import -> Git - Projects from Git

Ok, das wars schon fürs erste. Jetzt erscheint aber weder Commit noch Push im Contextmenü, wenn ich auf das Projekt über Team gehe.

Ist es denn geshared? Sonst wähle noch mal Team → Share

PS: Git nutzen lernt man eigentlich nur auf der Konsole :smiley:

Ja und auf der Konsole muss ich dann jede einzelne datei committen/pushen, etc. oder nicht? Imübrigen arbeite ich auf Windoof. Nur so zur Info ^^

Es gibt unter Team ausschließlich „Apply“ und „Share“. Bei Share kann ich irgendwie nur lokale Pfade setzen, nicht aber die GitHub URL. Ich verstehe es immer noch nicht :smiley:

Verwende doch git commit -a, somit hast du alle dateien comittet.

Also, weil Eclipse und EGit grosser Bockmist ist, ist doch Git nicht schlechter!

Git ist super, wenn man es begriffen hat. Wenn man mit der Einstellung ‘is eh scheisse’ rangeht, wird es nix werden und du solltest tatsaechlich bei svn bleiben.

Hast du schon ein Gitrepo gemacht, geclont, commitet, gepusht? Von der Commandline, alles andre is Murks.

Du hast dein Repo gecloned, damit musst du natürlich einen lokalen Pfad setzen. Du benutzt einen Server halt nur zum pushen / pullen / fetchen - sonst arbeitest du lokal.

+1
Ich habe eine graphische Oberfläche um Git zu bedienen noch nie eingesetzt (außer für Diffs). Habe also keine Ahnung ob man damit effektiv arbeiten kann. Ich glaube es aber nicht, kann mir zumindest nicht vorstellen wie man einen cherry-pick auf einem GUI ausführen soll ohne, dass man sich durch tausend Menüs wurschtelt. Und wenn du Git nur so benutzen willst wie du SVN benutzt, dann kannst du gleich bei SVN bleiben, bringt dir dann nämlich keinen Vorteil.

Wenn dann eher „git add -A && git commit“, sonst hast du keine untracked files mit drin.

Nachvollziehbar ist das schon. Ich wurde mit GIT auch nie richtig „warm“. Also nichts gegen Kommandozeilen, für ausgefeilte oder spezielle Sachen. Ich habe nichts dagegen, mal in der Doku nachschlagen zu müssen, um zu sehen, was man eintippen muss, um eine Commitmessage zu ändern o.ä. Aber… bei GIT braucht man die Kommandozeile echt für jeden Sche!ß, und manche Sachen, die in SVN selbstverständlich (und sehr nützlich) sind, gehen damit praktisch nicht (oder wenn, dann nur durch eine absurd-komplizierte Abfolge irgendwelcher Kommandozeilenbefehle). Es gibt ja überall solche suggestiven Bilder, wie http://nvie.com/img/2009/12/Screen-shot-2009-12-24-at-11.32.03.png , dazu kann ich nur sagen: Ja. Genau so. Mit Drag & Drop, Kontexmenüs und Tooltips, wo die Commitmessages drinstehen :slight_smile:

Könnt sagen was ihr woolt. Git ist und bleibt alles andere als Anwenderfreundlich. Ich hab bestimmt schon dreimal GANZ von vorne angefangen und den Kram trotzdem nicht verstanden. Bei den ganzen Local, Remote Master/Origins und rebasen kann mir keiner erzählen dass er genau weiss was er mit seinem Projekt macht, und welcher Code jetzt wo hin gemergt wird.

Doch aber eben nur auf Konsole :slight_smile: Mit UI Tools (sehe ich immer bei Kollegen) kommt da mehr durcheinander als bei denen die die Shell nutzen und genau wissen was ein entsprechendes Command macht und nicht welche Commands / Parameter ein Mausklick, eine Checkbox oder sonst was versteckt :slight_smile:

Man muss sich einfach eingestehen, GIT wurde nicht für die Verwendung in einer UI entwickelt.

Aber ja ich habe auch eine Weile Einarbeitung gebraucht aber: you get used to it and you’ll never want to missed it

Naja, das Committen mach ich inzwischen natuerlich aus meiner IDE heraus. Also is die Console nur fuer fetch&rebase (entspricht svn update) und push zustaendig.

Das ist der 99% Usecase. Der is weder kompliziert, noch schwer.

Ich gebe zu, dass ich nicht mal mehr in der IDE auf Commit klicke, aber ich bin eh ein Shell-Kind :smiley:

Da das eigentliche Thema für den TO schon beantwortet ist, hoffe ich mal, dass das jetzt nicht als Hijacking gilt, und ich ja mal ein Szenario skizzieren kann, bei dem ich immer wieder auf die Fre$$e fliege: Ich hole mir einen aktuellen Stand. Mache daran einige Änderungen. Und nun will ich wissen, was sich in der Zwischenzeit sonst noch so getan hat.

  • Mit SVN: Rechtsklick auf das Verzeichnis -> Compare with Base. Übersichtliche Baumansicht, Klick auf die Datei öffnet den Compare-Editor…
  • Mit GIT: Tja, verloren.
    Für mich ist die Möglichkeit, sich anzusehen, welche Änderungen es gab, für ein SCM nicht verhandelbar, egal welche sonstigen ““Vorteile”” es hat.

GIT: fetch + Compare with Branch. Is genauso einfach oder schwer, man muss nur wissen wies geht :stuck_out_tongue: