Zastanawiam się, czy istnieje sposób, aby uniknąć konieczności wpisywania słowa git
na początku każdego polecenia Git.
Byłoby miło, gdyby istniał sposób użycia git
polecenia tylko raz na początku po otwarciu wiersza polecenia, aby przejść do „trybu Git” .
Na przykład:
git>
Po którym każde wpisane polecenie jest domyślnie interpretowane jako polecenie Git.
W sposób podobny do tego, w jaki sposób używamy powłoki MySQL do pisania poleceń bazy danych:
mysql>
Dzięki temu nie będę musiał pisać git
setki razy dziennie.
UWAGA: używam git-bash
w systemie Windows.
Odpowiedzi:
Możesz spróbować gitsh . Z ich pliku Readme:
Lub spójrz na inne powiązane projekty:
Uwaga: sam tego nie używałem.
źródło
repl(1)
nie jest REPL. Nic nie ewaluuje ani nie drukuje. Uruchamia programy.fork()
/exec()
), więcrepl(1)
nawet nie robi to .IO
działania i wykonuje je, w tym efekty uboczne, takie jak drukowanie na ekranie podłączonym do terminala.repl
nie jest samodzielną REPL; to sposób na stworzenie systemu REPL, w którymrepl
jest tylko komponent interaktywny. Czy to w porządku?Jednowierszowy Perl, który to zrobi:
Wykona to wszystko, co wpiszesz, z prefiksem
git
. I tak będzie, dopóki nie uderzysz^D
.źródło
-ne
flag Perla ).perl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'
Nie jest to dokładnie to, o co prosisz, ale możesz ustawić aliasy powłoki w swoich
~/.bashrc
poleceniach Git, których najczęściej używasz:Pamiętaj też, że możesz tworzyć aliasy w samym Git:
To pozwala pisać
git ci
zamiastgit commit
, i tak dalej.źródło
git hash-object
lubgit interpret-trailers
? Po prostu oferuję to jako alternatywę, ponieważ o ile wiem, pytanie o to tak naprawdę nie istnieje.ci
dlacommit
używam również aliasu powłokig
dlagit
, to zmniejsza większość pisania i pozwala mi pozostać w mojej preferowanej powłoce.Jestem wielkim fanem używania aliasów w ~ / .bash_profile dla mojego GitBash. Jeśli zastosujesz to podejście, oto niektóre z moich ulubionych:
źródło
commit
anipush
ponieważ chcę kilka dodatkowych sekund (w trakcie pisania), aby mieć pewność, że ja nie niszcząc cośUżyj swojego edytora.
Wpisz polecenie jak
commit
z ulubionego edytora, np. Vs code, i wydaj się dzięki git:Lub wpisz,
git
aby uzyskać wszystkie polecenia:źródło
Mój przyjaciel napisał mały skrypt bash, który to osiąga. To się nazywa Zamień .
źródło
eval
oryginalnego źródła skryptu nie jest najlepszym pomysłem. Powiedz swojemu przyjacielowi, aby używałwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
zamiast tegoOto inny sposób. To również nie do końca to, o co pytano, ale używam go od jakiegoś czasu i jest całkiem fajny. Dodaj następujący wiersz do
~/.bashrc
:Teraz naciskając Tab po pustym znaku zachęty Bash wypisze „git”.
źródło
~/zshrc
, dla tcsh wstawisz~/tcshrc
itd.Wiem, że to bardzo późna odpowiedź, ale to pytanie naprawdę przykuło moją uwagę, ponieważ od dłuższego czasu mam do
czynienia zcierpieniemzpowodu tego rodzaju powtórzeń.Nie jestem pewien co do ciebie, ale szczerze mówiąc nie chcę (powtarzam NIE ) tworzenia aliasów dla każdego
git
polecenia, więc zamiast tego napisałem skrypt Pythona o nazwie NoGit, aby rozwiązać ten problem:NoGit to prosty skrypt w języku Python, który zapobiega niepotrzebnemu powtarzaniu słowa kluczowego „git”.
Dokumentacja:
%undo
polecenie usuwa ostatnią komendę ze stosu%run
polecenie uruchamia polecenia w stosie i czyści stos%exit
komenda zamyka CLI bez robienia czegokolwiekctr+c
jest takie samo jak bieganie%run; %exit
git.history
w tym samym folderze co skryptgit
na początku polecenia, a skrypt go nie powieli (np . :git init
nie stanie sięgit git init
)Przykładowe polecenia:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Informacje dodatkowe (dla użytkowników Linuksa):
Jeśli chcesz, możesz usunąć
.py
rozszerzenie i przekonwertować je na plik wykonywalny, używając:Następnie zamiast wywoływać skrypt w następujący sposób:
Uruchomiłbyś to zamiast tego:
Informacje dodatkowe (dla leniwych):
Jeśli jesteś leniwy i nie chcesz pisać,
./
możesz przenieść ten skrypt do swojego/bin/
folderu i utworzyć dla niego alias.Jeśli jesteś naprawdę, bardzo leniwy, użyj następujących poleceń:
Jeśli jesteś naprawdę, naprawdę, naprawdę leniwy, skopiuj i wklej następujący jedno-liner:
Jeśli twoje lenistwo osiągnęło poziomy nieznane wcześniej ludzkości, oto bardziej kompaktowa wersja tego samego liniowca:
Powodzenia.
źródło
Inne podejście, które będzie działać z dowolnymi poleceniami: użyj Ctrl + R (reverse-i-search).
Funkcja wyszukiwania wstecznego umożliwia przeszukiwanie historii poleceń. Powtórz Ctrl + R po naciśnięciu szukanego ciągu, aby powtórzyć wyszukiwanie z tym samym ciągiem wstecz.
Wystarczy wpisać polecenie tylko raz, a następnie można je przywołać z dowolnego podłańcucha polecenia. W większości przypadków możesz przywołać całe bardzo długie polecenia i ich różne warianty za pomocą zaledwie dwóch do trzech dobrze umieszczonych liter wyszukiwania. Nie są wymagane żadne wstępne konfiguracje oprócz normalnego używania powłoki i jest ona dostosowująca się do sposobu używania powłoki, wystarczy wpisać raz pełne polecenie, a polecenia zostaną automatycznie dodane do historii poleceń.
git commit --amend
:<Ctrl+R>am
git pull
:<Ctrl+R>pu
git rebase --rebase-merges -i --onto origin/develop origin/develop feature/blue-header
:<Ctrl+R>blu
git rebase --abort
:<Ctrl-R>ab
git rebase --continue
:<Ctrl-R>con
docker-compose stop && git pull && make && docker-compose up -d
:<Ctrl-R>up
Co więcej, Ctrl-R działa nie tylko na bash, ale na wielu programach, które używają biblioteki readline (a jest ich wiele), takich jak powłoka Python, IPython, powłoka mysql, powłoka psql, irb (ruby) itp.
źródło
W twoim przykładzie porównujesz go z monitem MySql. Działa to tak, że rozpoczyna się proces MySql, a ty podajesz komendom ten proces. Jako taki, dlaczego nie napisać czegoś podobnego w wybranym języku? Oto prosty przykład w C ++:
Pamiętaj, że właśnie napisałem to z pamięci i nie sprawdziłem tego za pomocą kompilatora. Mogą występować trywialne błędy składniowe.
źródło
W przypadku podstawowych rzeczy możesz:
Wyjdź za pomocą Ctrl + C
źródło
;
nich prowadzi dobash: syntax error near unexpected token
; `` Po drugie,eval
część jest podatna na podatności. Zastanówmy się na przykład, co się stanie, jeśli napiszęstatus;cat /etc/passwd
w tej małej powłoce. Nieszkodliwy przykład, ale masz pojęcie, co może się zdarzyć. Możesz uprościć to wwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
To oczywiście nie jest kuloodporne, ale 1 - jest prostszy i 2 - unika wykonywania poleceń innych niż git (na podstawie podwójnych cudzysłowów). Nie idealnie, tylko trochę lepiejsystem
lub\!
na początku. Tam, gdzie można założyć, że to „repl” wykonujegit
tylko polecenia, w rzeczywistości pozwala na więcej.eval
nie jest najlepszym pomysłem na uruchamianie poleceń, szczególnie gdy w grę wchodzą dane kontrolowane przez użytkownika.do
. Dzięki! re: security: To oczywiście nie jest przeznaczone do dystrybucji jako osobna aplikacja. Po prostu włóż,.bash_profile
jeśli nie lubisz pisać git. Nie martwię się zbytnio o to, że jest „niepewny”. Jeśli wkleisz do swojego basha rzeczy, których nie rozumiesz (w tym ten skrypt oneliner), będziesz miał zły czas. Podoba mi się to, ponieważ jest proste, łatwe do napisania i łatwe do odczytania oraz łatwe do ulepszenia.Kiedy korzystałem z systemu Windows 7 z Conemu, dodałem następujące elementy do skryptu uruchamiania środowiska programistycznego:
Dzięki temu mogłem po prostu użyć
g
polecenia zamiast pisaćgit
. Ostatnio próbowałem z Windows 10 i Conemu, to nie działało, myślę, że jest błąd, ale warto spróbować.źródło
Użyj edytora nawiasów, możesz łatwo używać kodu i poleceń git, ma także wiele funkcji.
W prawym górnym rogu druga ikona lornetki służy do instalowania rozszerzeń.
Wyszukaj rozszerzenie
brackets git
jak na powyższym obrazku i zainstaluj je.Ponownie w prawym górnym rogu pojawi się czwarta ikona, więc po prostu kliknij i zobacz zmiany jak na powyższym obrazku.
Jeśli chcesz zainstalować wsporniki, użyj następujących poleceń:
Aby uzyskać więcej informacji, przeczytaj: Jak zainstalować nawias edytora kodów w Ubuntu i Linux Mint na Ubuntupit .
źródło