Ich arbeite in einer Abteilung, in der noch niemand zuvor die Quellcodeverwaltung verwendet hat, auch ich nicht.
Ich versuche das Konzept voranzutreiben. Ich habe ein wenig Zeit mit der Erforschung von SVN verbracht. Ich habe ein paar Grundlagen gelernt. Ich kann mit Kommandozeile und von Tortoise erstellen / aktualisieren / auschecken / festschreiben. Ich fange an zu lernen, wie man Äste markiert und verzweigt, bin aber immer noch verwirrt über Konflikte zwischen Ästen und Stamm usw. Ich lerne immer noch, aber ich habe keine physische Person, die mir irgendetwas zeigen kann. Es ist alles aus Büchern / Tutorials und Versuch und Irrtum.
Nach dem, was ich online gelesen habe, scheint git
es das Bessere zu sein, aber es ist auch komplizierter. Ich will mich nicht überwältigen. Sollte ich svn weiterhin beherrschen, bevor ich zu git wechsle, oder wäre es klüger, jetzt einfach zu git zu springen?
Gibt es Vor- und Nachteile für beide Ansätze?
Antworten:
Nein
Git unterscheidet sich so radikal von SVN, dass es Ihnen nicht weiterhilft. Wenn überhaupt, werden Sie nach "update" - und "commit" -Befehlen suchen und sich fragen, warum alles anders ist.
Beginne mit Git von unten nach oben und gehe von dort aus.
Das Vergleichen eines standardmäßigen zentralisierten Versionsverwaltungssystems für Aktualisierungen / Festschreibungsmuster mit Git gleicht dem Vergleichen eines Busses mit dem Nahverkehr. Ein Bus bringt Sie (und alle anderen) auf genau derselben Strecke von Punkt A nach Punkt B. Der Nahverkehr bringt Sie mit einer beliebigen Route von Punkt A nach Punkt B.
Distributed selbst hat Nachteile, die Sie beachten sollten. Es erfordert mehr Arbeit, um alle auf derselben Seite zu halten. Es bietet jedoch eine enorme Steigerung der Flexibilität.
Revisions-Hashes vs.
Jemand hat Git mit SHA1-Hashes erwähnt, während Hg Zahlen verwendet.
Zuerst müssen Sie selten (wenn überhaupt) die Hashes in täglichen Commits / Pulls direkt verarbeiten. Sie müssen das Protokoll hochziehen und Hashes abrufen, wenn Sie Diffs oder einige der schwierigeren Elemente zum erneuten Basieren ausführen.
Mit Git hat jeder die gleichen Hashes. Verschiedene Repositorys haben keine unterschiedlichen Festschreibungsnummern und alle befinden sich auf derselben Seite. Bei Hg ist das weniger. In der Praxis ist es einfacher, mit anderen Personen zu synchronisieren, wenn Sie die Festschreibungs-Hashes abrufen und mit ihnen arbeiten müssen (entweder zum Vergleichen oder Durchlaufen der Timeline des Codes), wenn Sie Hashes anstelle von Zahlen haben.
quelle
Nein, bitte kümmere dich nicht einmal darum.
Im Ernst, starten Sie von einem DVCS. Die Tatsache, dass SVN beliebt ist, macht es nicht zum Standard. Linus Torvalds würde Ihnen sagen, dass es Ihr Gehirn verrotten könnte .
Lesen Sie diesen großartigen Artikel / die Einführung von Joel Spolsky mit dem Titel Subversion Re-education .
Sie könnten auch daran interessiert sein, diese andere Frage zu lesen: Ich bin ein Subversion-Freak, warum sollte ich Mercurial oder Git oder ein anderes DVCS in Betracht ziehen oder nicht?
Wahl zwischen DVCSs
Persönlich verwende ich sowohl Quecksilber als auch Git und ich denke, dass es wichtig ist, beide zu kennen. Eine empfehlenswerte Lektüre dazu ist Git vs. Mercurial: Please Relax (siehe das Beispiel git-addremove). Zwei Zitate aus diesem Artikel, die ich denke, fassen es zusammen.
In Bezug auf Git:
In Bezug auf Quecksilber:
Viele Projekte finden sich auf Github und Git ist leistungsfähiger, aber es kann auch für Neulinge, insbesondere für Windows-Benutzer, ein wenig einschüchternd sein. Es gibt auch Bitbucket (Github-Äquivalent für Quecksilber).
Meine Empfehlung: Beginnen Sie mit Quecksilber und nehmen Sie, sobald Sie sich damit wohl fühlen, den Schwachsinn in die Hand; Es geht nicht um die Werkzeuge, sondern um die Menschen, mit denen Sie arbeiten .
Was ich für den realen und praktischen Nutzen von subversion halte, ist, nicht für die Arbeit mit anderen Menschen, sondern um vielleicht einen Updater für Ihre Produktionsanwendungen zu implementieren:
svn up
und Ihr Projekt und seine Abhängigkeiten werden aktualisiert.Zitiert Thorbjørn in diesem anderen Thread :
Bearbeiten : Wenn es ein VCS gibt, das Sie vor Git kennen sollten, könnte das Mercurial sein (viel benutzerfreundlichere CLI-Oberfläche und eine gute Einführung in die verteilten Konzepte). Dieser Rat gilt insbesondere für diejenigen, die von Subversion kommen, da die CLI in gewissem Maße ähnlich ist. Die verteilte Versionskontrolle kann einfacher zu erlernen sein als die zentralisierte Versionskontrolle, da Sie sich nur um Ihre Repository-Instanz kümmern und nicht um die Client- und Serverteile in getrennten Abschnitten .
quelle
Sie sollten lernen, was Sie verwenden möchten. Git ist beliebt, ebenso wie Mercurial sich einiger Beliebtheit erfreute. Git / Mercurial sind beide verteilte Versionsverwaltungssysteme.
Das Wichtigste bei der Einführung eines neuen Konzepts in ein Team (und es ist bedauerlich, dass die Versionskontrolle für zu viele Teams als neues Thema angesehen wird), ist, Ihre Ziele und Bewertungskriterien zu skizzieren. Sie müssen nicht sehr formell sein, sondern stellen sich folgende Fragen:
Bei der Bewertung Ihrer Alternativen müssen Sie die wichtigen Dinge berücksichtigen, die alle VCS zu tun haben:
Führen Sie am Ende eine schnelle Evaluierung durch, um festzustellen, ob Standard-VCS- oder -DVCS-Systeme für Ihr Team am besten geeignet sind. Sie müssen das Werkzeug auswählen, das am wenigsten Schmerzen bereitstellt, oder es wird wahrscheinlich nicht übernommen. Bewerten Sie anschließend Ihre Alternativen, die Ihren Anforderungen am besten entsprechen.
Erfahren Sie am Ende, was Sie verwenden möchten.
quelle
Ich denke, dass viele Leute Git komplizierter finden als Svn, weil es anders ist. Nach einer Weile der Verwendung von Subversion (oder cvs usw.) kann es schwierig sein, mental in ein DVCS-Modell zu wechseln. Auf dieser Grundlage würde ich sagen, dass es für Sie möglicherweise angebracht ist, traditionelle VCS-ähnliche Subversion und DVCS-ähnliche Git zu erforschen.
Obwohl Git mein bevorzugtes VCS ist, würde ich sagen, dass es wahrscheinlich am besten ist, auch Subversion zu lernen. Zum einen gibt es immer noch viele Subversion- und CVS-Repositorys, mit denen Sie möglicherweise eines Tages interagieren müssen, und Sie haben ein besseres Verständnis für die genauen Vor- und Nachteile von DVCS gegenüber herkömmlichem VCS.
quelle
git-svn clone
um mit dem Repository zu interagieren.Es wäre kontraproduktiv, svn und dann git zu lernen
Hier einige Gründe:
Mein Rat ist, nur Git zu lernen.
quelle
In GIT und SVN sind einige Dinge im Großen und Ganzen gleich, andere nicht.
Im Großen und Ganzen sollten Sie es leicht abholen.
Unterschiedlich zwischen den beiden.
Ich sage nicht, dass du dich jetzt ändern sollst oder nicht (ich denke, das ist dein Aufruf), ich wollte nur darauf hinweisen, dass es etwas ist, das berücksichtigt werden muss. Wenn Sie sicher sind, dass Sie Git ausprobieren möchten, können Sie jetzt wechseln, um sich das Erlernen von etwas in SVN zu ersparen, das sich in Git unterscheidet.
quelle
Wow; 12 Antworten und jeder bittet noch um die Frage ...
Nein, Subversion ist keine Voraussetzung für Git.
Es gibt keine saubere Zuordnung zwischen Subversion und Git - wenn Sie beides lernen möchten, müssen Sie lediglich die Tatsache in Kauf nehmen, dass dieselben Begriffe für unterschiedliche Aktionen verwendet werden. (Und verschiedene Begriffe für die gleichen Aktionen.)
svn commit
ist etwas anderes alsgit commit
.Dies sind zwei Tools, die durch eine gemeinsame Sprache unterteilt sind.
Ihre Frage und die meisten anderen Antworten gehen davon aus, dass git eine Art von svn ++ ist. Eine "bessere svn". Ist es nicht. Die beiden sind verschiedene Werkzeuge, die im selben Raum arbeiten, wie ein Auto und ein Motorrad.
Ich würde vorschlagen, dass Sie sich eines aussuchen, es meistern und es in Ihrem Team einsetzen. Das Erlernen der Versionskontrolle wird für Leute, die sie noch nicht benutzt haben, schwierig. Ihr VCS wird ein wichtiger Teil Ihrer Infrastruktur sein, und das Erlernen des Vertrauens erfordert die Entwicklung neuer Arbeitsgewohnheiten. Das dauert eine Weile.
(Stellen Sie auf jeden Fall sicher, dass Ihre Sysadmins das Master-Repository sichern - ein Verlust Ihrer Quellcodeverwaltung wäre katastrophal.)
quelle
Wahrscheinlich nicht - es gibt genügend Unterschiede zwischen serverbasiert und verteilt, die Sie wahrscheinlich nur weiter verwirren würden.
Machen Sie sich von Anfang an daran, bewährte Methoden mit dem DVCS Ihrer Wahl zu befolgen, und Sie werden wahrscheinlich viel glücklicher sein.
Schau dir Mercurial an (wenn du nicht überwältigt werden willst).
quelle
Git ist nur unwesentlich komplizierter als Subversion, da es in Git einen Unterschied zwischen Commit und Push zum zentralen Repository gibt.
Es lohnt sich, Git zu lernen, während Sie die Chance haben, Ihren Verstand durch Subversion unzerstört zu lassen.
quelle
Ich denke nicht, dass man Subversion verstehen muss, um Git zu verstehen.
Zumindest für mich ist der größte Unterschied zwischen Git und Mercurial gegenüber Subversion, dass Sie ein lokales Repository haben, mit dem Sie ein- und auschecken, bis Ihr Code funktioniert, aus dem zentralen Repository auschecken, Konflikte beheben und Checken Sie erneut ein und senden Sie einen Push an den Server.
quelle
Ich mag Git in einer Unix-Umgebung (Linux, MacOS X). In Fenstern ist es ein bisschen hacky. Ich würde Mercurial in Betracht ziehen, wenn ich Windows in der Gleichung habe.
Ich mochte deine Geschichtsklassen, probiere SCCS, RCS, CVS, Subversion und benutze dann nützliche Dinge wie Git oder Mercurial.
Git und Mercurial sind gleichberechtigt, der große Bonus von Git ist Github . Aber wenn Sie Ihre Versionskontrolle nicht auslagern möchten, ist Github nicht mehr in der Gleichung.
quelle
Versionskontrollsysteme haben etwas gemeinsam mit Programmiersprachen, da das erste, das Sie lernen, die meiste Zeit in Anspruch nimmt. Danach müssen Sie nur noch lernen, wie Kernkonzepte im neuen System zum Ausdruck kommen.
Sie können jetzt Git lernen und bei Bedarf später Zeit in das Erlernen von Suvbersion investieren.
quelle
Nee. Laden Sie Git herunter, erstellen Sie ein Github-Konto und spielen Sie ein paar Tage lang mit Repos herum. Git ist ziemlich trivial, um sich auf dem Laufenden zu halten. Lernen Sie 5 oder 6 Bash-Befehle und Sie können alle wesentlichen Aufgaben erledigen. Ich bevorzuge im Allgemeinen die "Idiotensicherheit" einer GUI, aber der Git Bash ist so einfach wie es nur geht. Außerdem ist das Git Gui ziemlich anständig, wenn Sie diese Route bevorzugen. Ich sehe nicht wirklich den Nutzen, den Sie vom Lernen von SVN sehen würden. Vor einiger Zeit habe ich verschiedene Versionskontrollsysteme für ein neues Open-Source-Projekt getestet. Ich habe SVN, Bazaar, Git und ein paar andere ausprobiert und die Grundlagen von jedem gelernt. YMMV, aber Git war bei weitem am einfachsten. Es ist auch nichts Falsches daran, SVN zu lernen, aber es wird dir wirklich nicht helfen, Git zu lernen.
quelle