2012-04-04 9 views
9

Ich versuche, zwei Perspektiven zu rationalisieren, die miteinander verwandt zu sein scheinen (oder zumindest sehr ähnliche Funktionen bieten): Die 'Git Repository' Perspektive (die ich nach dem Hinzufügen bekam EGit), und die 'Team Synchronizing' Perspektive (die meiner Meinung nach Teil der EE Distribution war).Eclipse 'Git Repository' Perspektive vs 'Team Synchronisation'

Soweit ich sagen kann, ich in der Lage war, die Git Repository zum Laufen zu bringen (mit GitHub), oder zumindest die meisten Funktionen: Zum ‚Git Staging‘ Fenster funktioniert gut, ich bin in der Lage Übernehmen Sie das Commit, indem Sie die Dateien von "Unstaged changes" auf "Staged changes" ziehen und dann auf das Commit-Symbol klicken. Dann kann ich meine Änderungen aus dem Fenster 'Git Repositories' übertragen, indem ich mit der rechten Maustaste auf den Arbeitsbereich-> Remotes-> Ursprung-> url klicke und Push aus dem Menü wähle (ist das die 'richtige' Prozedur?).

Mit der 'Team Synchronizing' Perspektive, habe ich kein Glück, es sogar einzurichten. Sobald Sie die 'Synchronize ...' aus dem Menü, Git auswählen, dann sehe ich einen Tisch (was ist das?). Ich versuche verschiedene Werte für das Ziel (ansonsten kann ich nicht auf die Schaltfläche "Fertig stellen" klicken), aber egal was ich mache, es sagt mir "keine Änderungen" für alle meine Projekte.

Es gibt auch viele Kontextmenüs, wenn Sie mit der rechten Maustaste auf ein Projekt klicken und "Team" auswählen. Was ist das?

Antwort

4

In CVS ist das Team Synchronize der einzige vernünftige Weg, um Ihre eingehenden und ausgehenden Änderungen zu verwalten. Sie können eingehende Änderungen aktualisieren und zusammenführen und ausgehende Änderungen aus dieser einen Ansicht übernehmen. Da jedes Commit diskret und nicht atomar ist, ist die Ansicht für diesen Workflow in Ordnung.

In EGit haben Sie jedoch bereits explizite Aktionen zum Hinzufügen, Festschreiben, Schieben, Ziehen und Zusammenführen. Das Team synchronisiert sich also weitgehend außerhalb des normalen Arbeitsablaufs. Es verhält sich ähnlich wie eine verklärte Synchronisation von einem Patch - Sie wählen aus, in welchen Zweig (en) Sie Ihr Arbeitsverzeichnis vergleichen wollen und es zeigt Ihnen die Unterschiede. Sie können diese Änderungen dann massenweise oder einzeln anwenden, aber es wird nicht den Kontext aufnehmen, d. H. Es werden keine Merge-Punkte oder Ähnliches erzeugt.

So sollten Sie sich nicht ausnahmsweise ausnahmslos trainieren. Zum Beispiel, vielleicht hast du zwei Zweige A & B. Jemand hat eine Änderung an B vorgenommen und du brauchst nur einen kleinen Teil davon, damit du Team Sync verwenden kannst, um die Unterschiede anzuzeigen und nur diejenigen anzuwenden, die du brauchst. Oder vielleicht wollen Sie einfach alle Änderungen in Zweig B aufaddieren und sie als einen einzigen Commit in A bezeichnen. Dann könnten Sie Team Sync verwenden, anstatt mit einer Rebase herumzuwirbeln, wenn Sie B sowieso werfen oder eine entfernte Verzweigung .

3

Aus meiner Sicht ist die Perspektive "Git-Repository" zum Übertragen von Dateien aus dem Arbeitsverzeichnis in das lokale Git-Repository gedacht, während die Perspektive "Team-Synchronisierung" das lokale Repository mit einem Remote-Repository synchronisiert.

Ich fand das zunächst auch verwirrend, denn bei Verwendung von SVN war die "Team Sync" -Perspektive zum Commit/Aktualisieren von Dateien gedacht. Bis mir aufgefallen ist, dass in EGits Team-Sync-Perspektive anstelle der Commit/Update-Buttons die Pull/Push-Buttons zum Synchronisieren zweier Git-Repositories vorhanden sind.

Für die verschiedenen Optionen, die im Kontextmenü "Team" angezeigt werden, entsprechen sie einer Reihe von Git-Operationen. Ich würde vorschlagen, etwas über das Prinzip von Git vor der Verwendung von EGit zu lesen. http://git-scm.com/doc wäre ein guter Anfang.

Verwandte Themen