Eine offizielle Integration für GitHub und GitHub Enterprise.
gitsome
?Obwohl die Standard-Git-Befehlszeile ein großartiges Tool zum Verwalten Ihrer Git-basierten Repos ist, kann es schwierig sein, sich an die Verwendung von Folgendem zu erinnern :
Die Git-Befehlszeile lässt sich nicht in GitHub integrieren , sodass Sie zwischen Befehlszeile und Browser wechseln müssen.
gitsome
– Eine leistungsstarke Git/GitHub-CLI mit Autovervollständigung gitsome
zielt darauf ab, Ihre Standard-Git/Shell-Schnittstelle zu verbessern, indem es sich auf Folgendes konzentriert:
Nicht alle GitHub-Workflows funktionieren gut in einem Terminal; gitsome
Versuche, diejenigen ins Visier zu nehmen, die es tun.
gitsome
enthält 29 in GitHub integrierte Befehle, die mit ALLEN Shells funktionieren:
$ gh <command> [param] [options]
Führen Sie gh
-Befehle zusammen mit Git-Extras und Hub-Befehlen aus, um noch mehr GitHub-Integrationen freizuschalten!
Sie können die optionale Shell ausführen:
$ gitsome
um die automatische Vervollständigung und interaktive Hilfe für Folgendes zu aktivieren:
gitsome
vervollständigt Folgendes automatisch:
Informationen zum Aktivieren zusätzlicher automatischer Vervollständigungen finden Sie im Abschnitt „Bash-Vervollständigungen aktivieren“.
gitsome
unterstützt automatische Vorschläge im Fish-Stil. Verwenden Sie die right arrow
um einen Vorschlag zu vervollständigen.
gitsome
wird von xonsh
unterstützt, das eine Python-REPL unterstützt.
Führen Sie Python-Befehle neben Shell-Befehlen aus:
Weitere xonsh
Funktionen finden Sie im xonsh tutorial
.
gitsome
verfolgt die von Ihnen eingegebenen Befehle und speichert sie in ~/.xonsh_history.json
. Verwenden Sie die Aufwärts- und Abwärtspfeiltasten, um durch den Befehlsverlauf zu blättern.
Sie können die zum Hervorheben verwendeten Ansi-Farben steuern, indem Sie Ihre ~/.gitsomeconfig
Datei aktualisieren.
Zu den Farboptionen gehören:
'black', 'red', 'green', 'yellow',
'blue', 'magenta', 'cyan', 'white'
Wenn keine Farbe vorhanden ist, legen Sie den/die Wert(e) auf None
fest. white
kann auf manchen Endgeräten hellgrau erscheinen.
gitsome
ist für Mac, Linux, Unix, Windows und Docker verfügbar.
Nicht alle GitHub-Workflows funktionieren gut in einem Terminal;
gitsome
Versuche, diejenigen ins Visier zu nehmen, die es tun.
gitsome
fängt gerade erst an. Fühlen Sie sich frei, einen Beitrag zu leisten!
gh configure
gh create-comment
gh create-issue
gh create-repo
gh emails
gh emojis
gh feed
gh followers
gh following
gh gitignore-template
gh gitignore-templates
gh issue
gh issues
gh license
gh licenses
gh me
gh notifications
gh octo
gh pull-request
gh pull-requests
gh rate-limit
gh repo
gh repos
gh search-issues
gh search-repos
gh starred
gh trending
gh user
gh view
gh configure
gh
Tab-Vervollständigungen außerhalb von gitsome
PIL
oder Pillow
Verwendung:
$ gh <command> [param] [options]
configure Configure gitsome.
create-comment Create a comment on the given issue.
create-issue Create an issue.
create-repo Create a repo.
emails List all the user's registered emails.
emojis List all GitHub supported emojis.
feed List all activity for the given user or repo.
followers List all followers and the total follower count.
following List all followed users and the total followed count.
gitignore-template Output the gitignore template for the given language.
gitignore-templates Output all supported gitignore templates.
issue Output detailed information about the given issue.
issues List all issues matching the filter.
license Output the license template for the given license.
licenses Output all supported license templates.
me List information about the logged in user.
notifications List all notifications.
octo Output an Easter egg or the given message from Octocat.
pull-request Output detailed information about the given pull request.
pull-requests List all pull requests.
rate-limit Output the rate limit. Not available for Enterprise.
repo Output detailed information about the given filter.
repos List all repos matching the given filter.
search-issues Search for all issues matching the given query.
search-repos Search for all repos matching the given query.
starred Output starred repos.
trending List trending repos for the given language.
user List information about the given user.
view View the given index in the terminal or a browser.
Eine ausführliche Erläuterung aller GitHub-Integrationsbefehle, Parameter, Optionen und Beispiele finden Sie in der GitHub-Integrationsbefehlsreferenz in COMMANDS.md.
Schauen Sie sich den nächsten Abschnitt für eine kurze Referenz an.
gitsome
konfigurieren Für eine ordnungsgemäße Integration mit GitHub müssen Sie zunächst gitsome
konfigurieren:
$ gh configure
Führen Sie für GitHub Enterprise-Benutzer das Flag -e/--enterprise
aus:
$ gh configure -e
$ gh feed
Zeigen Sie Ihren Aktivitätsfeed oder den Aktivitätsfeed eines anderen Benutzers an, optional über einen Pager mit -p/--pager
. Die Pager-Option ist für viele Befehle verfügbar.
$ gh feed donnemartin -p
$ gh feed donnemartin/gitsome -p
$ gh notifications
Alle Pull-Anfragen für Ihre Repos anzeigen:
$ gh pull-requests
Sehen Sie sich alle offenen Probleme an, in denen Sie erwähnt wurden:
$ gh issues --issue_state open --issue_filter mentioned
Alle Probleme anzeigen und nur nach den Ihnen zugewiesenen Problemen filtern, unabhängig vom Status (offen, geschlossen):
$ gh issues --issue_state all --issue_filter assigned
Weitere Informationen zu den Filter- und Zustandsqualifizierern finden Sie in der Referenz zu gh issues
in COMMANDS.md.
$ gh starred "repo filter"
Suchen Sie nach Problemen mit den meisten +1:
$ gh search-issues "is:open is:issue sort:reactions-+1-desc" -p
Suchen Sie nach Problemen mit den meisten Kommentaren:
$ gh search-issues "is:open is:issue sort:comments-desc" -p
Suchprobleme mit dem Tag „Hilfe gesucht“:
$ gh search-issues "is:open is:issue label:"help wanted"" -p
Suchen Sie nach Problemen, bei denen Ihr Benutzername mit @donnemartin markiert ist:
$ gh search-issues "is:issue donnemartin is:open" -p
Durchsuchen Sie alle Ihre offenen privaten Ausgaben:
$ gh search-issues "is:open is:issue is:private" -p
Weitere Informationen zu den Abfragequalifizierern finden Sie in der Referenz zu Suchproblemen.
Durchsuchen Sie alle Python-Repos, die am oder nach 2015 erstellt wurden, mit >= 1000 Sternen:
$ gh search-repos "created:>=2015-01-01 stars:>=1000 language:python" --sort stars -p
Weitere Informationen zu den Abfragequalifizierern finden Sie in der Referenz zu Such-Repos.
Trend-Repos anzeigen:
$ gh trending [language] [-w/--weekly] [-m/--monthly] [-d/--devs] [-b/--browser]
Angesagte Entwickler anzeigen (Entwickler werden derzeit nur im Browser unterstützt):
$ gh trending [language] --devs --browser
view
Sehen Sie sich die zuvor aufgelisteten Benachrichtigungen, Pull Requests, Issues, Repos, Benutzer usw. an, mit HTML, das für Ihr Terminal gut formatiert ist, oder optional in Ihrem Browser:
$ gh view [#] [-b/--browser]
issue
Sehen Sie sich ein Problem an:
$ gh issue donnemartin/saws/1
pull-request
BefehlSehen Sie sich eine Pull-Anfrage an:
$ gh pull-request donnemartin/awesome-aws/2
.gitignore
einrichten Listen Sie alle verfügbaren .gitignore
-Vorlagen auf:
$ gh gitignore-templates
Richten Sie Ihr .gitignore
ein:
$ gh gitignore-template Python > .gitignore
LICENSE
einrichten Alle verfügbaren LICENSE
Vorlagen auflisten:
$ gh licenses
Richten Sie Ihre oder Ihre LICENSE
ein:
$ gh license MIT > LICENSE
Rufen Sie Octocat an, um die gegebene Nachricht oder ein Easter Egg zu sagen:
$ gh octo [say]
$ gh user octocat
Zeigen Sie Ihr Profil mit dem Befehl gh user [YOUR_USER_ID]
oder mit der folgenden Verknüpfung an:
$ gh me
Kommentar erstellen:
$ gh create-comment donnemartin/gitsome/1 -t "hello world"
Erstellen Sie ein Problem:
$ gh create-issue donnemartin/gitsome -t "title" -b "body"
Erstellen Sie ein Repo:
$ gh create-repo gitsome
Viele gh
-Befehle unterstützen die Option -p/--pager
, die Ergebnisse in einem Pager anzeigt, sofern verfügbar.
Verwendung:
$ gh <command> [param] [options] -p
$ gh <command> [param] [options] --pager
Viele gh
-Befehle unterstützen die Option -b/--browser
, die Ergebnisse in Ihrem Standardbrowser statt auf Ihrem Terminal anzeigt.
Verwendung:
$ gh <command> [param] [options] -b
$ gh <command> [param] [options] --browser
Eine detaillierte Auflistung aller GitHub-Integrationsbefehle, Parameter, Optionen und Beispiele finden Sie in COMMANDS.md.
Fällt es Ihnen schwer, sich diese Befehle zu merken? Schauen Sie sich den praktischen Autovervollständiger mit interaktiver Hilfe an, der Sie durch jeden Befehl führt.
Beachten Sie, dass Sie gitsome
mit anderen Dienstprogrammen wie Git-Extras kombinieren können.
gitsome
wird auf PyPI gehostet. Der folgende Befehl installiert gitsome
:
$ pip3 install gitsome
Sie können auch das neueste gitsome
von der GitHub-Quelle installieren, das Änderungen enthalten kann, die noch nicht an PyPI übertragen wurden:
$ pip3 install git+https://github.com/donnemartin/gitsome.git
Wenn Sie nicht in einer virtualenv
installieren, müssen Sie möglicherweise mit sudo
ausführen:
$ sudo pip3 install gitsome
pip3
Abhängig von Ihrem Setup möchten Sie möglicherweise pip3
auch mit der -H flag
ausführen:
$ sudo -H pip3 install gitsome
Für die meisten Linux-Benutzer kann pip3
mit dem Paket python3-pip
auf Ihrem System installiert werden.
Ubuntu-Benutzer können beispielsweise Folgendes ausführen:
$ sudo apt-get install python3-pip
Weitere Informationen finden Sie in diesem Ticket.
Sie können Python-Pakete in einer virtualenv
installieren, um mögliche Probleme mit Abhängigkeiten oder Berechtigungen zu vermeiden.
Wenn Sie ein Windows-Benutzer sind oder weitere Informationen zu virtualenv
wünschen, lesen Sie diese Anleitung.
Installieren Sie virtualenv
und virtualenvwrapper
:
$ pip3 install virtualenv
$ pip3 install virtualenvwrapper
$ export WORKON_HOME=~/.virtualenvs
$ source /usr/local/bin/virtualenvwrapper.sh
Erstellen Sie eine virtualenv
gitsome
-Umgebung und installieren Sie gitsome
:
$ mkvirtualenv gitsome
$ pip3 install gitsome
Wenn die pip
Installation nicht funktioniert, führen Sie möglicherweise standardmäßig Python 2 aus. Überprüfen Sie, welche Python-Version Sie verwenden:
$ python --version
Wenn der obige Aufruf zu Python 2 führt, suchen Sie den Pfad für Python 3:
$ which python3 # Python 3 path for mkvirtualenv's --python option
Installieren Sie bei Bedarf Python 3. Legen Sie die Python-Version fest, wenn Sie mkvirtualenv
aufrufen:
$ mkvirtualenv --python [Python 3 path from above] gitsome
$ pip3 install gitsome
Wenn Sie die gitsome
virtualenv
später erneut aktivieren möchten, führen Sie Folgendes aus:
$ workon gitsome
Um gitsome
virtualenv
zu deaktivieren, führen Sie Folgendes aus:
$ deactivate
Sie können gitsome in einem Docker-Container ausführen, um die lokale Installation von Python und pip3
zu vermeiden. Informationen zur Installation von Docker finden Sie in der offiziellen Docker-Dokumentation.
Sobald Sie Docker installiert haben, können Sie gitsome ausführen:
$ docker run -ti --rm mariolet/gitsome
Sie können Docker-Volumes verwenden, um Gitsome Zugriff auf Ihr Arbeitsverzeichnis, Ihre lokale .gitsomeconfig und .gitconfig zu ermöglichen:
$ docker run -ti --rm -v $(pwd):/src/
-v ${HOME}/.gitsomeconfig:/root/.gitsomeconfig
-v ${HOME}/.gitconfig:/root/.gitconfig
mariolet/gitsome
Wenn Sie diesen Befehl häufig ausführen, möchten Sie wahrscheinlich einen Alias definieren:
$ alias gitsome="docker run -ti --rm -v $(pwd):/src/
-v ${HOME}/.gitsomeconfig:/root/.gitsomeconfig
-v ${HOME}/.gitconfig:/root/.gitconfig
mariolet/gitsome"
So erstellen Sie das Docker-Image aus Quellen:
$ git clone https://github.com/donnemartin/gitsome.git
$ cd gitsome
$ docker build -t gitsome .
gitsome
Shell Führen Sie nach der Installation den optionalen gitsome
Autovervollständiger mit interaktiver Hilfe aus:
$ gitsome
Wenn Sie die optionale gitsome
Shell ausführen, erhalten Sie automatische Vervollständigung, interaktive Hilfe, Vorschläge im Fischstil, eine Python-REPL usw.
gh
BefehlenFühren Sie in GitHub integrierte Befehle aus:
$ gh <command> [param] [options]
Hinweis: Das Ausführen der gitsome
-Shell ist nicht erforderlich, um gh
-Befehle auszuführen. Nach der Installation gitsome
können Sie gh
-Befehle von jeder Shell aus ausführen.
gh configure
Für eine ordnungsgemäße Integration mit GitHub muss gitsome
ordnungsgemäß konfiguriert sein:
$ gh configure
Mit dem Flag -e/--enterprise
ausführen:
$ gh configure -e
Weitere Details finden Sie im Abschnitt „GH-Konfiguration“.
Standardmäßig sucht gitsome
nach den folgenden Speicherorten, um Bash-Vervollständigungen zu ermöglichen.
Um zusätzliche Bash-Vervollständigungen hinzuzufügen, aktualisieren Sie die Datei ~/.xonshrc
mit dem Speicherort Ihrer Bash-Vervollständigungen.
Wenn ~/.xonshrc
nicht existiert, erstellen Sie es:
$ touch ~/.xonshrc
Wenn beispielsweise in /usr/local/etc/my_bash_completion.d/completion.bash
zusätzliche Vervollständigungen gefunden werden, fügen Sie die folgende Zeile in ~/.xonshrc
hinzu:
$BASH_COMPLETIONS.append('/usr/local/etc/my_bash_completion.d/completion.bash')
Sie müssen gitsome
neu starten, damit die Änderungen wirksam werden.
gh
Tab-Vervollständigungen außerhalb von gitsome
Sie können gh
-Befehle außerhalb des gitsome
Shell-Completers ausführen. Um gh
-Tab-Vervollständigungen für diesen Workflow zu aktivieren, kopieren Sie die Datei gh_complete.sh
lokal.
Teilen Sie der Bash mit, dass der Befehl gh
in Ihrer aktuellen Sitzung abgeschlossen werden kann:
$ source /path/to/gh_complete.sh
Um die Tab-Vervollständigung für alle Terminalsitzungen zu aktivieren, fügen Sie Ihrer bashrc
Datei Folgendes hinzu:
source /path/to/gh_complete.sh
Laden Sie Ihren bashrc
neu:
$ source ~/.bashrc
Tipp: .
ist die Kurzform von source
, Sie können also stattdessen Folgendes ausführen:
$ . ~/.bashrc
zsh
enthält ein Modul, das mit Bash-Vervollständigungen kompatibel ist.
Laden Sie die Datei gh_complete.sh
wie oben beschrieben herunter und hängen Sie Folgendes an Ihre .zshrc
an:
autoload bashcompinit
bashcompinit
source /path/to/gh_complete.sh
Laden Sie Ihren zshrc
neu:
$ source ~/.zshrc
PIL
oder Pillow
Um den Avatar für die Befehle gh me
und gh user
anzuzeigen, ist die Installation der optionalen PIL
oder Pillow
Abhängigkeit erforderlich.
Windows* und Mac:
$ pip3 install Pillow
*Einschränkungen für den Avatar finden Sie im Abschnitt „Windows-Support“.
Ubuntu-Benutzer können sich diese Anweisungen auf askubuntu ansehen
gitsome
wird von xonsh
betrieben, das Python 2.x derzeit nicht unterstützt, wie in diesem Ticket beschrieben.
gitsome
wurde unter Windows 10 mit cmd
und cmder
getestet.
Obwohl Sie die Standard-Windows-Eingabeaufforderung verwenden können, werden Sie wahrscheinlich mit cmder oder conemu ein besseres Erlebnis haben.
Für die Befehle gh user
und gh me
ist immer das Flag -t/--text_avatar
aktiviert, da img2txt
den ANSI-Avatar unter Windows nicht unterstützt.
Unter Windows befindet sich die .gitsomeconfig
Datei in %userprofile%
. Zum Beispiel:
C:Usersdmartin.gitsomeconfig
Wenn Sie daran interessiert sind, zu gitsome
beizutragen, führen Sie die folgenden Befehle aus:
$ git clone https://github.com/donnemartin/gitsome.git
$ cd gitsome
$ pip3 install -e .
$ pip3 install -r requirements-dev.txt
$ gitsome
$ gh <command> [param] [options]
pip3
Wenn Sie während der Installation eine Fehlermeldung erhalten, dass Sie Python 3.4+ benötigen, kann dies daran liegen, dass Ihr pip
-Befehl für eine ältere Version von Python konfiguriert ist. Um dieses Problem zu beheben, wird empfohlen, pip3
zu installieren:
$ sudo apt-get install python3-pip
Weitere Informationen finden Sie in diesem Ticket.
Einzelheiten zur kontinuierlichen Integration finden Sie auf Travis CI.
Führen Sie Unit-Tests in Ihrer aktiven Python-Umgebung aus:
$ python tests/run_tests.py
Führen Sie Unit-Tests mit tox in mehreren Python-Umgebungen aus:
$ tox
Die Dokumentation des Quellcodes wird in Kürze auf Readthedocs.org verfügbar sein. Sehen Sie sich die Quelldokumentzeichenfolgen an.
Führen Sie Folgendes aus, um die Dokumente zu erstellen:
$ scripts/update_docs.sh
Beiträge sind willkommen!
Sehen Sie sich die Beitragsrichtlinien an, um Einzelheiten dazu zu erfahren:
Sie können mich gerne kontaktieren, um Probleme, Fragen oder Kommentare zu besprechen.
Meine Kontaktinformationen finden Sie auf meiner GitHub-Seite.
Ich stelle Ihnen Code und Ressourcen in diesem Repository unter einer Open-Source-Lizenz zur Verfügung. Da es sich um mein persönliches Repository handelt, stammt die Lizenz, die Sie für meinen Code und meine Ressourcen erhalten, von mir und nicht von meinem Arbeitgeber (Facebook).
Copyright 2016 Donne Martin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.