Fortgeschrittene Nutzung von Geeta oder wie man sechs Monate früher in den Ruhestand geht?


Ich weiß nicht, in welcher Programmiersprache Sie schreiben, aber ich bin sicher, dass Sie Geet während der Entwicklung verwenden. Es gibt immer mehr Tools zur Unterstützung der Entwicklung, aber selbst beim kleinsten Testprojekt beginne ich immer mit dem Befehl git init . Und während des Arbeitstages tippe ich durchschnittlich weitere 80 Teams ein, die sich auf dieses Versionskontrollsystem beziehen.


Ich war sehr nervös, als ich anfing, die Zehn-Finger-Druckmethode neu zu lernen. Am Ende war dies die beste Entscheidung, um Ihren persönlichen Workflow zu verbessern. Zu den nächstwichtigsten Optimierungen gehört die Weiterentwicklung des Geeta.


Viele Artikel über Gita wurden über Habr geschrieben, aber sie gehen nicht über die offizielle Dokumentation hinaus, und die Autoren schlagen vor, die Arbeit mit selbst hergestellten Krücken zu vereinfachen. Ich bin sicher, dass es notwendig ist, das Geet an konkreten Beispielen von Aufgaben zu studieren und die Effizienz der Arbeit mit standardisierten Mitteln zu steigern.


Wer wird von diesem Artikel profitieren?


Haben Sie das Gita-Set des Gentlemans bereits gemeistert und sind Sie bereit, weiterzumachen? Es gibt zwei Möglichkeiten:


  1. Master abgekürzte Befehle - Aliase. Sie sind fast immer mnemonisch und leicht zu merken. Das Vergessen der ursprünglichen Befehle ist problematisch, ich tippe sie bei Bedarf einfach ein. Außerdem bin ich nicht verwirrt, wenn ich beim Schreiben von Code etwas in der Gita überprüfe.
  2. Erfahren Sie mehr über zusätzliche Flaggen für Teams sowie deren Integration untereinander. Ich verstehe, dass jemand das Schneiden hasst. Auch für Sie enthält der Artikel interessantes Material - wie Sie den Nutzen und die Bequemlichkeit der Befehlsausgabe erhöhen und nicht die trivialsten, aber in der Praxis häufig auftretenden Probleme lösen können .

Wenden Sie heute ein paar Stunden auf die im Artikel beschriebenen Experimente auf und sparen Sie durch ungefähre Berechnungen sechs Monate Arbeitszeit.


Willkommen bei Katze!


Vorbereitung


Unter Entwicklern ist der Standard für die Bash Alternative Zsh , eine fortschrittliche Software-Shell, die die Feinabstimmung unterstützt. Und unter Zsh Benutzern besteht der Standard darin, Oh My Zsh , eine Reihe vordefinierter Einstellungen für Zsh . Nachdem wir dieses Kit installiert haben, erhalten wir eine Reihe von Hacks, die die Community im Laufe der Jahre für uns gesammelt und entwickelt hat.


Es ist sehr wichtig zu beachten, dass Zsh für Linux , Mac und sogar Windows Zsh ist.


Installieren Sie Zsh und Oh My Zsh


Installieren Sie Zsh und Oh My Zsh gemäß den Anweisungen mit einem Befehl:


 # macOS brew install zsh zsh-completions && sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" # Ubuntu, Debian, ... apt install zsh && sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 

Da die Aufgabe darin besteht, die Interaktion mit dem Geet zu optimieren , werden wir Zsh einige Plug-Ins Zsh . Öffnen Sie die ~/.zshrc und fügen Sie der Liste plugins :


 plugins=(git gitfast) 

Gesamt:


  • git - eine Reihe von Aliasen und Hilfsfunktionen;
  • gitfast - verbesserte automatische Vervollständigung für Gita.

tig Einstellung


Der letzte Schliff ist die Installation des Dienstprogramms tig console:


 # macOS brew install tig # Ubuntu, Debian, ... # https://jonas.imtqy.com/tig/INSTALL.html 

Wir werden weiter darüber reden.


Git in der Praxis


Der Umgang mit Geeta erfolgt am besten durch Lösen spezifischer Probleme. Als nächstes betrachten wir Aufgaben aus der täglichen Praxis und Optionen für ihre bequeme Lösung. Betrachten Sie dazu ein bestimmtes Repository mit Textdateien.


Die gelben Blöcke geben den Hauptalias zur Lösung des Problems aus dem Abschnitt an. Lerne nur es und überlasse alles andere der allgemeinen Entwicklung.

Überprüfen Sie den Status des Arbeitsverzeichnisses


Beginnen wir mit der grundlegendsten Sache. Wir haben ein wenig gearbeitet und jetzt wollen wir sehen, was im Arbeitsverzeichnis passiert:


 $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: e.md Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: b.md Untracked files: (use "git add <file>..." to include in what will be committed) d.md 

Der aktuelle Status aller Dateien wird ausführlich beschrieben, zusätzliche Handlungsanweisungen werden gegeben. Es ist zunächst sehr nützlich, wenn Sie Geeta verwenden, aber für die tägliche Arbeit ist viel überflüssig. Lassen Sie uns den Geräuschpegel mit zusätzlichen Tasten senken:


 $ git status -sb ## master M b.md A e.md ?? d.md 

Ja, wir befinden uns im Hauptzweig, haben die b.md ( M-odified ) geändert und zwei Dateien erstellt, wobei die erste dem Geeta-Index ( A-dded ) A-dded und die zweite aus dem Index entfernt wurde ( ?? ). Kurz und klar.


Es bleibt die endlose Eingabe dieses Befehls durch den Alias " g it s tatus with b ranch" zu optimieren:


Status des verkürzten Arbeitsverzeichnisses anzeigen

 $ gsb # git status -sb 


Erstellen Sie ein Commit


Wir fahren fort.


Natürlich können Sie Commits machen. Aber versuchen wir, die Lösung dieser einfachen Aufgabe zu optimieren. Fügen Sie alle Änderungen zum Index mit dem Alias " g it a dd a ll" hinzu :


 $ gaa # git add --all 

Wir überprüfen, ob der Index genau das hat, was wir brauchen, indem wir den Alias " g it d iff ca ched" verwenden :


 $ gdca # git diff --cached diff --git a/b.md b/b.md index 698d533..cf20072 100644 --- a/b.md +++ b/b.md @@ -1,3 +1,3 @@ # Beta -Next step. +Next step really hard. diff --git a/d.md b/d.md new file mode 100644 index 0000000..9e3752e --- /dev/null +++ b/d.md @@ -0,0 +1,3 @@ +# Delta + +Body of article. 

Hmm, Änderungen, die eine einzelne Aufgabe lösen, sollten in ein Commit fallen. Hier sind die Änderungen beider Dateien in keiner Weise miteinander verbunden. Lassen Sie uns d.md die Datei d.md mit dem Alias " g it r eset u ndo" aus dem Index ausschließen :


 $ gru d.md # git reset -- d.md 

Und erstellen Sie ein Commit mit dem Alias " g it c ommit" :


 $ gc # git commit 

Wir schreiben den Namen des Commits und speichern. Und dann erstellen wir ein weiteres Commit für die Datei d.md bekannteren Befehl unter Verwendung des Alias " g it c ommit m e s sa g e" :


 $ gaa #    $ gcmsg "Add new file" # git commit -m "Add new file" 

Und wir können ...


... geänderte Dateien aus dem Index mit einem Befehl festschreiben:


 $ gcam "Add changes" # git commit -a -m "Add changes" 

... Änderungen durch Wörter anstelle von Zeilen sehen (sehr nützlich bei der Arbeit mit Text):


 $ gdw # git diff --word-diff 

... Dateien in Teilen hinzufügen (sehr nützlich, wenn Sie nur einen Teil der Änderungen aus der Datei zum Commit hinzufügen müssen):


 $ gapa # git add --patch 

... nur Dateien zum Index hinzufügen, die bereits unter der Aufsicht der Geeta stehen:


 $ gau # git add --update 

Gesamt:


Zum Index hinzufügen / Commit erstellen

 $ ga # git add $ gc # git commit 


Fix Commit


Der Name des letzten Commits erklärt nicht die Änderungen, die wir vorgenommen haben. Lassen Sie uns neu formulieren:


 $ gc! # git commit -v --amend 

Und im Texteditor, der geöffnet wird, nennen wir es deutlicher: "Add Delta article" . Ich bin sicher, dass Sie niemals den Schalter -v , obwohl beim Bearbeiten der Beschreibung des Commits alle vorgenommenen Änderungen angezeigt werden, was zu einer besseren Navigation beiträgt.


Und wir können ...


... Änderungen an der Festschreibung vornehmen, aber die Beschreibung nicht berühren:


 $ gcn! # git commit -v --no-edit --amend 

... alle Dateiänderungen sofort am Commit vornehmen, ohne zuerst den Index zu ergänzen:


 $ gca! # git commit -v -a --amend 

... kombinieren Sie die beiden vorherigen Befehle:


 $ gcan! # git commit -v -a --no-edit --amend 

Nun, es ist noch einmal wichtig zu beachten, dass wir anstelle des vollständigen, regelmäßig verwendeten git commit -v --amend nur drei Zeichen schreiben:


Letzte Festschreibung ändern

 $ gc! # git commit -v --amend 


Erste Schritte mit einer neuen Funktion


Erstellen Sie einen neuen Zweig aus dem aktuellen Alias " g it c heckout b ranch" :


 $ gcb erlang # git checkout --branch erlang 

Obwohl nein, ist es besser, einen Artikel über eine modernere Sprache von Elixir alias " g it b ranch with the key move" zu schreiben (das Umbenennen in der Gita erfolgt durch move ):


 $ gb -m elixir # git branch -m elixir 

Es wäre logisch, den Alias gbmv , aber leider wurde er noch nicht erfunden. Eine gute Option für einen Beitrag.


Wir nehmen Änderungen am Repository vor und erstellen ein Commit, wie wir bereits wissen:


 $ echo "#  —     ." > e.md $ gaa && gcmsg "Add article about Elixir" 

Und denken Sie daran:


Erstellen Sie einen neuen Zweig

 $ gcb # git checkout --branch 


Änderungen zusammenführen


Jetzt fügen wir unseren neuen Artikel über Elixier zum master . Wechseln Sie zunächst mit dem Alias " g it c heckout m aster" zum Hauptzweig :


 $ gcm # git checkout master 

Nein, wirklich. Einer der am häufigsten verwendeten Befehle in drei leicht zu merkenden Zeichen. Jetzt lautet die Zusammenführung der Aliasänderung " g it m erge" :


 $ gm elixir # git merge elixir 

Ups, aber jemand hat es bereits geschafft, Änderungen am master vorzunehmen. Und anstelle der schönen linearen Geschichte, die in unserem Projekt übernommen wurde, habe ich erstellt gehasst Merge Commit.


Zweige zusammenführen

 $ gm # git merge 


Löschen Sie das letzte Commit


Nichts Schlimmes! Sie müssen nur das letzte Commit löschen und erneut versuchen, die Änderungen zusammenzuführen. " G it r eset hh ard" :


Letzte Festschreibung löschen

 $ grhh HEAD~ # git reset --hard HEAD~ 


Wir lösen Konflikte


Die Standard- checkout – rebase – merge Sequenz zum checkout – rebase – merge eines linearen Änderungsverlaufs wird von der folgenden Aliase-Sequenz ausgeführt:


 gco elixir # git checkout elixir grbm # git rebase master gcm # git checkout master gm elixir # git merge elixir 

Alle von ihnen werden so oft verwendet, dass sie bereits von den Fingern wegfliegen, und bei solchen Operationen muss nicht überlegt werden, welche Buchstaben eingegeben werden sollen. Und vergessen Sie nicht, dass Sie in Zsh die Namen von Zweigen mit der Tab ergänzen können.


Machen Sie eine Rebase

 $ grb # git rebase 


Übermitteln von Änderungen an den Server


Zuerst fügen wir den origin Alias " g it r emote a dd" hinzu :


 $ gra origin git@github.com/... # git remote add origin git@github.com/... 

Und dann senden wir die Änderungen direkt an den aktuellen Zweig des Repositorys ( "gg" - doppeltes g am Anfang des Befehls zeigt die Ausführung der Aktion im aktuellen Zweig an):


 $ ggpush # git push origin git_current_branch 

Sie können auch ...


... senden Sie die Änderungen mit der upstream Installation des Alias " g it p ush s et up stream" an den Server:


 $ gpsup # git push --set-upstream origin $(git_current_branch) 

Senden Sie die Änderungen an den Server

 $ gp # git push 


Wir erhalten Änderungen vom Server


Die Arbeit ist in vollem Gange. Es ist uns gelungen, einen neuen Artikel f.md zum master hinzuzufügen, und unsere Kollegen haben den Artikel a.md geändert und diese Änderung an den Server gesendet. Diese Situation ist auch sehr einfach zu lösen:


 $ gup # git pull --rebase 

Dann können Sie sicher Änderungen an den Server senden. Der Konflikt ist beigelegt.


Holen Sie sich Änderungen vom Server

 $ gl # git pull 


Zusammengeführte Zweige löschen


Daher haben wir mehrere Zweige erfolgreich zu master , einschließlich des elixir aus dem vorherigen Beispiel. Wir brauchen sie nicht mehr. Sie können den Alias " g it b ranch d elete a nother" entfernen :


 $ gbda # git branch --no-color --merged | command grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d 

Sehr schönes und gerissenes Team. Normalerweise vergesse ich, Zweige zu löschen, die an Relevanz verloren haben, und dieses anmutige Team ist eine echte Rettung. Wenn Sie keinen Alias ​​verwenden möchten, kopieren Sie einfach die Vollversion des Befehls in Ihre Notizen und führen Sie ihn nach Bedarf aus.


Erstellen Sie ein temporäres Commit


Die Arbeit an einem neuen h.md Artikel über Haskell ist in vollem Gange. Die Hälfte ist geschrieben und Sie müssen Feedback von einem Kollegen erhalten. Ohne nachzudenken, geben wir den Alias " g it w ork i n p rogress" ein :


 $ gwip # git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify -m "--wip-- [skip ci]" 

Anschließend wird ein Commit mit dem Namen Work in Progress , wobei CI übersprungen und die "zusätzlichen" Dateien gelöscht werden. Wir senden den Zweig an den Server, sprechen über diesen Kollegen und warten auf die Überprüfung.


Dann kann dieses Commit rückgängig gemacht und die Dateien in ihren ursprünglichen Zustand zurückversetzt werden:


 $ gunwip # git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1 

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob in Ihrer Zweigstelle WIP Commits vorhanden sind:


 $ work_in_progress 

Der Befehl gwip ist ein ziemlich zuverlässiges Analogon von stash wenn Sie zu einem benachbarten Zweig wechseln müssen. Aber in Zsh gibt es viele Aliase für stash .


Temporäres Commit hinzufügen / Temporäres Commit zurücksetzen

 $ gwip $ gunwip 


Änderungen verbergen


Sie müssen mit diesem Befehl vorsichtig sein. Dateien können ausgeblendet und dann mit einer unachtsamen Aktion vollständig gelöscht werden, da es ein reflog in dem Sie versuchen können, die verlorene Arbeit zu finden.


Verstecken wir die Dateien, an denen wir arbeiten, mit dem Alias g it st ash a ll :


 $ gsta # git stash save 

Und geben Sie sie dann mit dem Alias " g it st ash p op" zurück :


 $ gstp # git stash pop 

Oder die sicherere Methode „ g it st ash a ll a pply“ :


 $ gstaa # git stash apply 

Sie können auch ...


... sehen, was genau wir versteckt haben:


 gsts # git stash show --text 

... Abkürzungen für verwandte Befehle verwenden:


 gstc # git stash clear gstd # git stash drop gstl # git stash list 

Änderungen ausblenden / Änderungen abrufen

 $ gsta $ gstaa 


Auf der Suche nach einem Fehler


Das git-bisect Tool, das mir immer wieder das Leben gerettet hat, hat auch seine eigenen Aliase. Wir beginnen mit dem Start der Prozedur "Binäre Fehlersuche" mit dem Alias ​​" g it b i s ect s tart" :


 $ gbss # git bisect start 

Wir stellen fest, dass das aktuelle Commit als letztes in der Verzweigung einen Fehler mit dem Alias " g it b i s ect b ad" enthält :


 $ gbsb # git bisect bad 

Jetzt markieren wir das Commit, das uns den Betriebszustand der Anwendung garantiert: g it b i s ect g ood“ :


 $ gbsg HEAD~20 # git bisect good HEAD~20 

Und jetzt bleibt es weiterhin, gbsb Fragen mit den Sätzen gbsb oder gbsg zu beantworten und nach dem Auffinden des gbsg das Verfahren zurückzusetzen:


 $ gbsr # git bisect reset 

Und ich schreibe diese Abkürzungen wirklich, wenn ich dieses Werkzeug benutze.


Fehler beim Festschreiben der Suche

 $ gbss # git bisect start $ gbsb # git bisect bad $ gbsg # git bisect good $ gbsr # git bisect reset 


Wir suchen den Anstifter der Gesetzlosigkeit


Selbst bei einem hohen Prozentsatz der Codeabdeckung mit Tests ist niemand vor einer Situation gefeit, in der die Anwendung abstürzt und freundlicherweise auf eine bestimmte fehlerhafte Zeile zeigt. In unserem Fall möchten wir beispielsweise herausfinden, wer in der zweiten Zeile der Datei a.md einen Fehler a.md . Führen Sie dazu den folgenden Befehl aus:


 $ gbl a.md -L 2 # git blame -b -w a.md -L 2 

Sie sehen, Oh My Zsh Mitarbeiter haben nicht nur einen Alias ​​für das git blame Team erstellt, sondern auch Schlüssel hinzugefügt, die es einfach machen, den Anstifter direkt zu finden.


Bonus


Zeigen Sie eine Liste der Commits an


Verwenden Sie zum Anzeigen der Liste der Commits den Befehl git log mit zusätzlichen Ausgabeformatierungsschlüsseln. Normalerweise wird dieser Befehl zusammen mit den Schlüsseln in die benutzerdefinierten Aliase von Gita eingegeben. Wir haben mehr Glück, wir haben bereits einen vorgefertigten Alias: glog . Und wenn Sie das tig Dienstprogramm tig den Empfehlungen vom Anfang des Artikels installiert haben, sind Sie ein absoluter Champion.


Um den Verlauf von Commits in der Konsole auf sehr bequeme Weise zu lernen, müssen Sie das Wort git umgekehrt eingeben:


 $ tig 

Das Dienstprogramm bietet auch einige nützliche Ergänzungen, die nicht sofort in der Gita enthalten sind.


Zunächst ein Befehl zum Durchsuchen des Inhalts einer Geschichte:


 $ tig grep 

Zweitens: Anzeigen einer Liste aller Quellen, Zweige und Tags mit ihrem Verlauf:


 $ tig refs 

Drittens finden Sie vielleicht etwas Interessantes für sich selbst:


 $ tig --help 

Versehentlich git reset --hard


Sie haben den ganzen Tag am elixir :


 $ glog * 17cb385 (HEAD -> elixir) Refine Elixir article * c14b4dc Add article about Elixir * db84d54 (master) Initial commit 

Und am Ende haben sie versehentlich alles gelöscht:


 $ grhh HEAD~2 HEAD is now at db84d54 Initial commit 

Kein Grund zur Panik. Die wichtigste Regel ist, die Ausführung von Befehlen in der Gita zu beenden und auszuatmen . Alle Aktionen mit dem lokalen Repository werden in einem speziellen Protokoll- reflog . Daraus können Sie den Hash des gewünschten Commits abrufen und im Arbeitsbaum wiederherstellen.


Schauen wir uns das Reflog an, aber nicht auf die übliche Weise durch git reflog , sondern interessanter mit einem detaillierten Transkript:


 $ glg -g 

Suchen Sie den Hash des gewünschten 17cb385 Commits und stellen Sie ihn wieder her:


 #           $ gcb elixir-recover 17cb385 #    $ gbd elixir #     $ gb -m elixir 

Anstatt ein neues Commit zu erstellen, habe ich zufällig Änderungen am vorherigen vorgenommen


Auch hier kommen wir zur Rettungshilfe um. Wir finden den Hash des ursprünglichen 17cb385 Commits. Wenn wir den Commit sofort abbrechen, können wir anstelle des Hash den Quick-Link zu HEAD@{1} . Als nächstes führen wir einen Soft-Reset durch, während der Index nicht zurückgesetzt wird:


 #      $ grh --soft HEAD@{1} # git reset -soft #   $ gcmsg "Commit description" 

Der Zweig ist zu alt


Manchmal beginnt man mit der Arbeit an einem Feature, aber die Veröffentlichung wird auf unbestimmte Zeit verzögert. Sie verpflichten sich und wechseln zu anderen Aufgaben. Zusammen mit dem Team nehmen Sie eine Reihe von Änderungen am Master vor und kehren nach einer Weile mit Funktionen zum Zweig zurück. Sie versuchen, die Basis neu zu bestimmen, aber er bietet an, Konflikte in einem Dutzend Commits zu analysieren. Sie können versuchen, sie alle zu lösen oder es einfacher zu machen.


Schauen wir uns ein Beispiel für einen Feature-Zweig namens elixir :


 #   master $ gcm # git checkout master #        $ gcb elixir-new # git checkout --branch elixir-new #           $ gcp elixir@{0} # git cherry-pick elixir@{0} 

Anstatt zu versuchen, den Zweig zu aktualisieren, nehmen wir ein einzelnes Commit ohne Probleme und übertragen es.


Wichtige Daten aus dem Repository entfernen


Um wichtige Daten aus dem Repository zu löschen, habe ich das folgende Snippet gespeichert:


 $ git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <path-to-your-file>' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all 

Wenn Sie diesen Befehl stash wird Ihr stash . Vor der Ausführung wird empfohlen, alle versteckten Änderungen zu erhalten. Lesen Sie hier mehr über diese Technik.


Bezugnehmend auf den vorherigen Zweig


Wenn Sie einige Befehle ausführen, bei denen die Eingabe eines Zweignamens erwartet wird, können Sie einen Bindestrich als Referenz auf den Zweig übergeben, mit dem wir gekommen sind. Es ist besonders gut, diesen Checkout-Trick zu verwenden:


 $ gco - # git checkout - $ gm - # git merge - $ grb - # git rebase - 

Löschen Sie alle in .gitignore markierten .gitignore


Ein weiterer häufiger Rückschlag ist zu spät, um unerwünschte Dateien oder Verzeichnisse zu .gitignore . Um sie aus dem Repository zu bereinigen ( und von der Festplatte zu löschen ), gibt es bereits vorgefertigte Schlüssel für den Befehl git clean :


 $ gclean -X # git clean -Xfd 

Seid vorsichtig!


Lesen Sie weiter für den richtigen Weg.


Warum brauchen viele Teams den Schalter --dry-run ?


Der --dry-run nur als Vorsichtsmaßnahme bei der Deinstallation und Aktualisierung benötigt. Im vorherigen Abschnitt wurde beispielsweise beschrieben, wie Sie alles löschen, was in der .gitignore Datei angegeben ist. Es ist besser, vorsichtig zu sein und den Schalter --dry-run , --dry-run Liste aller zu löschenden Dateien --dry-run und den Befehl erst dann ohne --dry-run .


Fazit


Der Artikel zeigt einen Punkt zur Optimierung der Arbeit des Programmierers. Denken Sie daran, 10-20 mnemonische Abkürzungen sind nicht schwierig, vergessen Sie, dass das ursprüngliche Team fast unmöglich ist. Die Aliase sind standardisiert. Wenn Sie also das gesamte Team auf Zsh + Oh My Zsh , können Sie auch bei der Oh My Zsh mit der gleichen Geschwindigkeit und dem gleichen Komfort arbeiten.


Wohin als nächstes?


Ich biete folgende Optionen an:


  1. Stellen Sie schließlich fest, wie das Geet im Inneren angeordnet ist . Es hilft zu verstehen, was Sie tun und warum das, was Sie tun möchten, nicht funktioniert.
  2. git --help Sie nicht faul, noch einmal die Dokumentation für die Befehle zu git --help : git --help oder ghh .
  3. Die vollständige Liste der Aliase finden Sie unter dem Link . Der Versuch, sich an alle zu erinnern, ist verrückt, aber die Liste als Sammlung interessanter Befehle und Schlüssel zu verwenden, ist eine gute Idee.

Einige Aliase werden nicht trivial erstellt, erweisen sich jedoch in der Praxis als sehr nützlich. Viele der vorgestellten Aliase sind nicht nur Abkürzungen, sondern kleine Funktionen, die die Arbeit weiter optimieren. Die Verwendung von Git ist angenehmer geworden, die Qualität der Commits hat sich verbessert.


Ich hoffe, das Material hat sich als nützlich erwiesen und Sie konnten etwas Neues für sich selbst lernen. Oder vielleicht haben sie bereits begonnen, einen neuen Ansatz aktiv einzuführen. Viel Glück

Source: https://habr.com/ru/post/de420529/


All Articles