Ich bin ein .NET-Entwickler und habe TFS (Team Foundation Server) oft als Versionsverwaltungssoftware verwendet. Gute Eigenschaften von TFS sind:
- Gute Integration mit Visual Studio (so mache ich fast alles visuell; keine Konsolenbefehle)
- Einfaches Auschecken, Einchecken
- Einfaches Zusammenführen und Beheben von Konflikten
- Einfache automatisierte Builds
- Verzweigung
Jetzt möchte ich Git als Backbone, Repository und Quellcodeverwaltung für meine Open Source-Projekte verwenden. Meine Projekte sind in C # -, JavaScript- oder PHP-Sprache mit MySQL- oder SQL Server-Datenbanken als Speichermechanismus.
Ich habe gerade die Hilfe von github.com für diesen Zweck verwendet und dort ein Profil erstellt und eine GUI für Git heruntergeladen. Bis zu diesem Teil war es so einfach.
Aber ich bin fast festgefahren, um weiterzukommen. Ich möchte nur einige einfache (wirklich einfache) Operationen ausführen, darunter:
- Ein Projekt auf Git erstellen und es einem Ordner auf meinem Laptop zuordnen
- Dateien und Ordner auschecken / einchecken
- Konflikte lösen
Das ist alles was ich jetzt tun muss. Aber es scheint, dass die GUI nicht so benutzerfreundlich ist. Ich erwarte, dass die grafische Benutzeroberfläche ein Connect To...
oder so etwas hat, und dann erwarte ich, dass eine Liste der Projekte angezeigt wird. Wenn ich eines auswähle, erwarte ich, dass die Liste der Dateien und Ordner dieses Projekts angezeigt wird, genau wie beim Durchsuchen Ihres TFS-Projekts in Visual Studio. Dann möchte ich in der Lage sein, mit der rechten Maustaste auf eine Datei zu klicken und check-in...
oder check-out
und ähnliches auszuwählen .
Erwarte ich viel Was soll ich tun, um Git einfach wie TFS zu nutzen? Was vermisse ich hier?
quelle
Antworten:
Die Vorteile, die sich daraus ergeben, dass viele alte Annahmen darüber, was ein VCS tun sollte, verworfen wurden. Die Nachteile resultieren daraus, dass Sie nicht in der Lage sind, frühere Erfahrungen zu nutzen und Dinge nicht so zu tun, wie Sie es gewohnt sind.
Wenn Sie von etwas anderem zu Git wechseln möchten, versuchen Sie, tabula-rasa zu starten (obwohl dies in der Praxis nicht wirklich möglich ist). Bewerten Sie es basierend darauf, was es tut und wie gut es es tut, nicht darauf, wie es es tut, verglichen mit der Art, wie Sie es gewohnt sind. Es ist nicht so, dass Sie zu viel erwarten, es ist so, dass Ihre Erwartungen orthogonal zu dem sind, was Git bereitstellt. Wenn Sie mit einer grafischen Benutzeroberfläche verheiratet sind, werden Sie enttäuscht sein. Git verfügt zwar über GUI-Tools, diese fügen jedoch nicht viel hinzu. Das ist kein Misserfolg, sie so zu versorgen, wie es nicht so viel gibt, dass ein GUI hinzufügen kann. GitK hilft nicht bei der täglichen Arbeit, sondern bei der Visualisierung der Filialstruktur und der Überprüfung oder Suche in der Historie.
Hier ist eine doofe Analogie für das, was ich mit "orthogonal" meine. Mit einer Zeitung können Sie unter anderem Fische einwickeln oder einen Vogelkäfig damit auskleiden. Dies ist jedoch für die Funktion einer Zeitung nicht unbedingt erforderlich , da es sich um zufällige Merkmale des Formulars handelt . Wenn Sie erwarten, dass git Dateien eincheckt, Projekte auswählt oder eine Verbindung zu ... "ist eine Art Erwartung, Fische einwickeln oder Ihren Vogelkäfig mit der Website einer Zeitung auskleiden zu können .
quelle
Haben Sie mercurial betrachtet? Wie bei git handelt es sich um ein DCVS, mit dem Sie alle netten Dinge erledigen können, die mit einem DCVS möglich sind. Genau wie git gibt es einen ziemlich guten Cloud-basierten Dienstanbieter (Bitbucket). Aber im Gegensatz zu Idiot ist die Windows-Geschichte ziemlich anständig, Sie sind kein Bürger zweiter Klasse. Sie haben gute Werkzeugoptionen (TortiseHG) und eine recht gute Visual Studio-Integration (VisualHG).
Nichts wird so sein wie TFS im Visual Studio - die Welt ist einfach nicht so verkabelt.
quelle
svn
vielen Dingen übergegangen und habe sie verpasst, die einfach so einfach warenhg
. Jetzt ziehe ich umgit
und habe gemischte Gefühle. Ich liebe es, viele der Einrichtungen, die ich verpasst habe, zurückzugewinnensvn
, aber ich vermisse immer noch die Einfachheit imhg
Vergleich zu der unnötigen Komplexität vongit
. Selbst wenn Sie TortoiseGit nur unter Windows installieren , müssen Sie durch Rahmen springen, die mit TortoiseHg einfach nicht erforderlich sind .Ich bin vor einem Jahr von SVN zu Git gewechselt und freue mich sehr darüber. Ich verlasse mich jedoch nicht auf eine GUI, und falls Sie die Befehlszeile strikt ablehnen, kann dies ein Problem sein.
Sie scheinen zu erwarten
git
, dass Sie so arbeiten, wie Sie es gewohnt sind, aber das tut es nicht. Es ist nicht schwer, aber Sie sollten einen Blick auf die Prinzipien werfen, bevor Sie fortfahren.Git ist verteilt, was bedeutet, dass Sie immer mit Ihrem lokalen Repository arbeiten, das auf eine beliebige Anzahl von Remotes, einschließlich Null, abgebildet werden kann. Beim Spielen mit dem Projekt anderer verwende ich zwei Fernbedienungen: das Git- oder SVN-Repository und meinen eigenen Server.
Ich erstelle immer ein leeres Verzeichnis und dann entweder
git init
odergit clone SOME-REMOTE-REPOSITORY
. Dieser Link könnte Ihnen helfen.Sie haben nicht geschrieben, welche GUI Sie verwenden. Beides kann
TortoiseGit
undgit-gui
kann es sicher.Dafür benutze ich
git-gui
oder mein Lieblingstexteditor.Verbinden mit was, wenn es 0 bis N Fernbedienungen geben kann? Git bleibt nicht mit einem Remote-Server verbunden, sondern stellt die Verbindung nur vorübergehend und nur für die wenigen Befehle her, die mit dem Remote-Repository arbeiten. Die meiste Arbeit wird vor Ort erledigt.
Ich gehe davon aus, dass
projects
du meinstrepositories
.Ich fürchte, es gibt so etwas nicht. Git auf einem Remote-Server funktioniert nur mit einem einzigen Repository. Das Auflisten aller Repositorys entspricht dem Auflisten aller Verzeichnisse, die das Unterverzeichnis enthalten
.git
. Ich bin sicher, dass es so etwas gibtGitHub
.Leider gibt es so etwas nicht, da es
git
vor Ort arbeitet. Und wieder würde es nicht viel nützen. Klonen Sie einfach das Repository und durchsuchen Sie es auf Ihrem Computer. Während das Klonen großer Repos einige Zeit in Anspruch nimmt, sind alle nachfolgenden Vorgänge viel schneller, und Sie können sich jedes Commit oder jeden Zweig ansehen.Funktioniert wieder
git
lokal. Es macht also keinen Sinn, in ein Remote-Repo ein- oder auszuchecken. Auf diese Weise zu arbeiten ist Zeitverschwendung, selbst in einem schnellen LAN. Holen Sie sich das Repository auf Ihren Computer, arbeiten Sie damit und nehmen Siegit push
die Änderungen an der Fernbedienung vor. Stellen Sie sich vor, Sie veröffentlichen Ihre Änderungen und erstellen ein Backup. Sie sollten sich sehr oft vor Ort engagieren .Bevor Sie mit Ihrer Arbeit beginnen
git fetch
odergit pull
die Änderungen von der Fernbedienung aus, falls jemand anders damit gearbeitet hat.Ja und nein. Sie erwarten etwas anderes als das, was es bietet. Sie können viel Besseres erreichen,
git
sind leistungsfähig, flexibel, sicher, schnell und können alles tun, was Sie brauchen, aber es kann nicht genau nachahmen, was ein zentrales VCS tut.quelle
Ich habe die Reise von der visuellen Quelle sicher zu tfs zu svn zu git gemacht.
Der Wechsel von vss zu tfs war eine angenehme Erfahrung. Es war eine angenehme Erfahrung, von tfs zu svn zu wechseln. Der Wechsel von Svn zu Git war eine Art innerer Kampf.
Oft bin ich ziemlich konservativ und versuche, mich an das zu halten, was funktioniert. Eine nette Benutzeroberfläche ist für mich der Befehlszeile vorzuziehen und ich habe nach einer Benutzeroberfläche gesucht, mit der ich mit den coolen Kindern spielen kann, mit denen ich arbeite. Sie alle benutzten git ausschließlich mit der Kommandozeile.
Der Eureka-Moment für mich war gekommen, als ich die Suche nach einem Silberkugel-GUI aufgegeben und angefangen hatte, Git Bash zu testen (ich lerne noch).
Ich habe einige Guis installiert und sie ergänzen Git von der Kommandozeile. Git-Erweiterungen, Git-Versionsverwaltungsanbieter für Visual Studio und Tortoise Git. Aber ich sage, mach dich mit Git Bash vertraut. Die Befehle können etwas kryptisch sein, aber sobald Sie sie gelernt haben, sind sie viel schneller als die GUI.
Das Verzweigen mit git ist einfach fantastisch im Vergleich zu den anderen. Erstellen Sie Zweige und wechseln Sie fast augenblicklich zwischen Zweigen. Sie können Dinge tun, die Sie mit svn nicht tun würden, weil svn im Grunde Ihre Arbeitskopie kopiert (zumindest so, wie ich es getan habe).
Ich finde, Git hat eine steilere Lernkurve als SVN. Aber sobald du es mit git "verstanden" hast, willst du nicht mehr zurück.
Git den ganzen Weg.
quelle
Sie sind es gewohnt, einen Server zu haben, auf dem Ihre Dateien gespeichert sind und der allmächtige Eigentümer der Dateien ist. Um eine Datei zu bearbeiten, müssen Sie den Server um Erlaubnis bitten.
Git ist nicht so. Stellen Sie sich git folgendermaßen vor: Sie haben Ihr lokales Repository. Git können Sie verpflichten Änderungen, Reverse - Commits, einfache und schnelle Verzweigung, etc. Wenn Sie sichern möchten Ihre Quelle-Steuer Geschichte, Sie drücken , um die Änderungen zu einem anderen Repository, das „nur zufällig sein“ ein Server, wie GitHub.com.
Arbeitsablauf:
Das ist alles.
quelle
Was meinst du mit "der" Git Gui? Es gibt eine Unmenge davon, einschließlich eines Plugins für die visuelle Studio-Integration, wenn ich mich richtig erinnere. Wenn eine GUI für Sie nicht funktioniert, versuchen Sie es noch einmal, bis Sie eine finden, die dies tut. Ich persönlich benutze verschiedene GUIs für verschiedene Aufgaben (und die CLI für andere).
Git ist jedoch eher ein Versionskontrollframework als ein festes System. Sie müssen noch einige Grundlagen lernen, um das Beste daraus zu machen.
quelle
Ja
Nichts. Git ist CLI-zentriert und hat kein gutes Frontend (ich kenne TortoiseGit, was im Vergleich zu anderen Tortoise * keine Antwort ist). Sie können versuchen , SmartGit zu verwenden (Vorsicht vor Java)
quelle