Welche Vorteile bringt es , wenn Sie lernen, Git über die Befehlszeile zu verwenden, wenn GitHub GUI-Apps für Mac und Windows bereitstellt ?
Momentan verwende ich ihre Mac-App, um meine Repositorys zu aktualisieren, und bis jetzt scheint sie meine Bedürfnisse zu decken. Was könnte ich verpassen?
Antworten:
Ich denke, diese Frage ist nur ein Sonderfall von "Warum sollte ich eine CLI lernen, für die es eine GUI-Alternative gibt?". Ich vermute, die letztere Frage ist ungefähr so alt wie GUIs, und ich gehe davon aus, dass es im Laufe der Jahre viele Versuche gab, sie zu beantworten. Ich könnte versuchen, mich durch meine eigene Antwort auf diese Frage zu wühlen, aber Neal Stephenson hat in seinem bemerkenswerten Aufsatz " Am Anfang ... war die Befehlszeile " vor mehr als zehn Jahren artikuliert, womit ich einverstanden bin .
Während der Aufsatz viele Aspekte des Rechnens anspricht und sogar Stephenson selbst der Meinung ist, dass ein Großteil davon veraltet ist, erklärt der Aufsatz, inwiefern CLIs auf äußerst überzeugende Weise bessere GUIs sind, was mein Leben buchstäblich verändert hat. Es ist eine lange Lektüre (~ 40 Seiten), aber ich kann es niemandem genug empfehlen, der Fragen stellt, wie Sie sie hier gestellt haben.
Obwohl ich alle Fragen zu CLI und GUI auf ähnliche Weise beantworten würde, gilt meine Antwort meiner Meinung nach besonders für Ihre spezifische Frage, da Sie sich für alle Computerfragen entschieden haben
git
.git
ist wohl das neueste Werkzeug in einer nicht allzu langen Liste von Computerwerkzeugen, die wirklich der in Stephensons Aufsatz beschriebenen Hole-Hawg-Metapher würdig sind.git
Wie bei vielen anderen Unix-ähnlichen Dingen ist dies ein Grund, die CLIs als solche zu kennen. Manchmal trotz seines unberechenbaren "Porzellans" ; manchmal deswegen.Ja, Sie können mit der GUI von Github auf jeden Fall produktiv sein, entweder für OSX oder einfach nur auf deren Website. Ja, es ist eigentlich ziemlich elegant, ich benutze die Funktionen der Website oft. Aber nein, du wirst niemals das göttliche Gefühl haben, wenn dein rechter kleiner Finger über einem wahnsinnigen
git filter-branch
Befehl für ein oder zwei Äonen hängt . Wenn ich nur eine Sache aus meiner Erfahrung mit dem Rechnen heraushalten müsste - die mentalen Herausforderungen, die engen Freundschaften, die sich in einem Rechenzentrum um 2 Uhr morgens gebildet haben, die unendliche Kompetenz zum Klettern, das Berühren des Lebens der Benutzer und das Regieren über PBs mit wertvollen Daten, das Gedämpfte Jobs und komfortables Leben - behalte nur eine Sache - es wäre das göttliche Gefühl.quelle
Wenn all Ihre Bedürfnisse gedeckt sind, fantastisch, Sie müssen sich nicht weiter mit GIT beschäftigen, dann ist es besser, Ihre Zeit damit zu verbringen, etwas zu lernen, was Sie tatsächlich brauchen.
git ist nur ein Tool, das Sie kennen, wenn Sie mit einer GUI-App etwas tun müssen, das Sie nicht können. Denken Sie daran, dass Github! = Git.
quelle
Die meisten CLI-reinen Funktionen kommen nur dann zum Einsatz, wenn Sie Ihr Repository versehentlich in einen seltsamen Zustand versetzen und es reparieren möchten. Auf der anderen Seite können Sie Ihr Repo am häufigsten in einen seltsamen Zustand versetzen, indem Sie erweiterte Funktionen verwenden, die Sie nicht verstehen. Wenn Sie sich an das halten, was die grafische Benutzeroberfläche bietet, wird dies in 99% der Fälle Ihren Bedarf decken.
Der andere Grund, warum Sie die CLI lernen möchten, ist, dass es sich um die Lingua Franca handelt. Das bedeutet, dass viele Benutzer unterschiedliche GUIs auf unterschiedlichen Plattformen verwenden. Wenn Sie jedoch in StackOverflow oder anderswo um Hilfe bitten, werden die Antworten wahrscheinlich in Form von CLI-Befehlen vorliegen. Wenn Sie die CLI nicht kennen, sind Ihre Möglichkeiten, Hilfe zu erhalten, wesentlich eingeschränkter.
quelle
GUI-Anwendungen sind auf manuelle Interaktionen angewiesen, um komplexe Verhaltensweisen auszuführen. Dies ist ideal, um Projekte einzurichten und neue Dinge zu entwickeln.
Die Vorteile einer Befehlszeilenschnittstelle (Command-Line Interface, CLI) liegen in der Möglichkeit, vorgegebene Skripts zu erstellen, die automatisiert werden können. Die GUI von GitHub besteht nur aus ein paar hübschen Grafiken und ausgefallenen Schaltflächen, die die Git-CLI aufrufen.
Was die GUI-App nicht für Sie erledigt, ist die automatische Aktualisierung des Trunks eines Repos auf einem Server täglich um 1:30 Uhr. Ein Cron-Job, der die Git-CLI aufruft, ist jedoch eine sehr einfache Möglichkeit, dies einzurichten.
Wenn Sie in einem Team an einem Projekt arbeiten, ist es außerdem praktisch, Installationsskripts, Erstellungsskripts, Bereitstellungsskripts usw. einzurichten, damit sich Teamkollegen auf die Lösung von Problemen konzentrieren können, anstatt auf langwierige, sich wiederholende Aufgaben.
quelle
Ein weiterer Grund, warum die CLI vorzuziehen ist, ist eine Frage des Workflows. Viele Frameworks werden über die Befehlszeile verwaltet. Durch die Verwendung von Git über die CLI kann ich mich weiterhin auf mein Projekt und auf dieses Projektverzeichnis konzentrieren. Zum Beispiel könnte ich einen Test durchführen und dann beschließen, die neuen Änderungen über dieselbe Schnittstelle und denselben Speicherort festzuschreiben.
quelle
Ich muss mich in letzter Zeit wirklich mit Git auseinandersetzen, um bei einer SVN-zu-Git-Migration helfen zu können. Und das, was ich gelernt habe, ist, dass die Git-Befehlszeilen-Tools nicht der komplizierte Teil sind, den man lernen muss.
Die Konzepte und Ideen hinter Git sind der komplexe Teil (und das nicht, weil sie schlecht entworfen sind, sondern einfach, weil sie den meisten Menschen fremd sind, die von einem anderen, zentralisierten VCS stammen).
Sobald ich die Konzepte verstanden habe, wurden die tatsächlichen Befehlszeilenanweisungen relativ einfach. Das bedeutet, dass eine Benutzeroberfläche das Verständnis von Git nicht wirklich verbessert (mit Ausnahme der einfachsten Operationen).
quelle
git
so einfach, dass die Leute sie nicht herausfinden können - sie suchen nach etwas Schwierigerem.Die Kenntnis der CLI ist nützlich, wenn Sie sich in einer Umgebung befinden, in der Sie keine GUI-App haben.
Ein mögliches Szenario: Sie werden gebeten, nur ein paar Tage bei einem Projekt an einem geschlossenen Ort mitzuhelfen, an dem es ärgerlich schwierig und langwierig ist, neue Tools in das System zu bekommen. Sie verwenden nur CLI. Ihre Produktivität wurde nur beeinträchtigt, weil Sie alles noch einmal lernen müssen.
quelle
Ein Grund für das Erlernen von Befehlszeilen-Git ist, dass die meisten Dokumentationen für diese Umgebung geschrieben wurden. Wenn Sie eine Frage stellen: "Wie mache ich X mit git?", Besteht die Möglichkeit, dass die Antwort Befehlszeilenbefehle enthält.
quelle
Eines der Hauptprobleme bei der Verwendung einer GUI im Vergleich zur Befehlszeile ist, dass Sie in den meisten Fällen nicht die gleiche Kontrolle über Ihren Prozess haben können. Beispielsweise ist die GitHub-Anwendung in Bezug auf die Benutzerfreundlichkeit für viele Git-Workflows großartig, könnte jedoch für fortgeschrittene Git-Prozesse noch umständlich sein.
Als Beispiel hier sind einige Dinge, die ich nicht herausgefunden habe, wie man die GitHub-Anwendung benutzt (eine andere Sache, die zu beachten ist, dass jede GUI auch eine Lernkurve hat).
Schließlich ermöglichen CLIs Benutzern, diese Tools beim Skripten zu verwenden.
quelle
Ich kenne GitHub für Mac nicht, aber die Windows-App führt nur die häufigsten Aufgaben aus - Hinzufügen, Festschreiben, Drücken, Ziehen usw. Komplexere Aufgaben
git merge --no-ff
müssen beispielsweise über die Befehlszeile ausgeführt werden.Es gibt auch Fälle mit git, in denen die grafische Benutzeroberfläche nicht verfügbar ist, z. B. beim SSH-Zugriff auf Remoteserver.
Wenn Ihnen die grafische Benutzeroberfläche jedoch alles bietet, was Sie benötigen, ist das Erlernen der Befehlszeile möglicherweise Zeitverschwendung. In meiner Arbeit wird TortoiseSVN nur unter Windows verwendet, und ich musste die SVN-Befehlszeile noch kein einziges Mal berühren.
quelle
Ich habe gerade einen Fall kennengelernt, in dem CLI besser sein kann als GUI. Um dies zu veranschaulichen, habe ich ein Beispiel aus einer Buch-Git-Versionskontrolle für alle genommen.
Wenn Sie über ein Intranet freigeben möchten, können Sie Folgendes verwenden:
Sehen Sie sich die Schritte zum Erstellen eines Bare-Repos an.
Erstellen eines leeren Repositorys im CLI-Modus
Der Befehl zum Erstellen eines Bare-Repositorys ist mit dem Befehl identisch, den Sie zum Klonen eines Repositorys verwendet haben, mit Ausnahme des Parameters --bare, der den Unterschied ausmacht.
git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\ Bare_Workbench
Wenn Sie den obigen Code in Ihrer Konsole ausführen, sollte ein bloßer Klon unseres Workbench-Repositorys in Ihrem gemeinsamen freigegebenen Ordner mit dem Namen generic_share erstellt werden.Erstellen eines leeren Repositorys im GUI-Modus
Das Erstellen eines Bare-Clones aus einem bereits vorhandenen Repository mithilfe der grafischen Benutzeroberfläche ist ein einfacher Vorgang. Alles was Sie tun müssen ist:
Kopieren Sie das .git-Verzeichnis aus dem vorhandenen Repository und fügen Sie es mit einem anderen_namen.git (einem beliebigen Namen, den Sie Ihrem neuen Bare-Repository geben möchten) außerhalb des Repositorys ein. In unserem Fall haben wir ein nicht-nacktes Repo namens Workbench unter C: \ Users \ raviepic3 \ Desktop \, in dem wir content.docx haben. Und jetzt möchte ich ein neues nacktes Repository über die GUI erstellen. Ich kopiere C: \ Users \ raviepic3 \ Desktop \ Workbench.git und füge es als C: \ generic_share \ Bare_Workbench.git ein.
Öffnen Sie das
config file
Innere von Bare_Workbench.git mit einem Texteditor und suchen Sie die Zeile, die besagt,bare = false
und ersetzen Sie die Zeichenfolge false durch true.Speichern und schließen.
In der GUI müssen Sie so viele Klicks ausführen und sich merken, welche Datei bearbeitet werden soll. In CLI erledigt ein einfacher Befehl alles für Sie.
quelle