Saya bertanya-tanya apakah ada cara untuk menghindari keharusan mengetik kata git
di awal setiap perintah Git.
Alangkah baiknya jika ada cara untuk menggunakan git
perintah hanya sekali di awal setelah membuka prompt perintah untuk masuk ke "mode Git" .
Sebagai contoh:
git>
Setelah itu setiap perintah yang kita ketik secara default ditafsirkan sebagai perintah Git.
Dengan cara yang mirip dengan bagaimana kita menggunakan shell MySQL untuk menulis perintah basis data:
mysql>
Ini akan menyelamatkan saya dari keharusan mengetik git
ratusan kali sehari.
CATATAN: Saya menggunakan git-bash
, pada Windows.
git
version-control
command-line-interface
git-bash
Nokturnal
sumber
sumber
Jawaban:
Anda mungkin ingin mencoba gitsh . Dari readme mereka:
Atau lihat proyek-proyek lain yang terhubung di sana:
Catatan: Belum pernah menggunakan ini sendiri.
sumber
repl(1)
bukan REPL. Itu tidak eval atau mencetak apa pun. Ini menjalankan program.fork()
/exec()
), jadirepl(1)
bahkan tidak melakukan itu .IO
tindakan, dan menjalankannya termasuk efek samping seperti mencetak ke layar yang terhubung ke terminal.repl
bukanlah REPL mandiri; ini adalah cara untuk menciptakan sistem REPL yangrepl
hanya merupakan komponen interaktif. Apakah itu adil?Satu-liner Perl yang akan melakukan ini:
Ini akan mengeksekusi apa pun yang Anda ketik, diawali dengan
git
. Dan itu akan terus melakukan itu sampai Anda menekan^D
.sumber
-ne
bendera Perl ).perl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'
Ini bukan apa yang Anda minta, tetapi Anda bisa mengatur beberapa alias shell di dalam Anda
~/.bashrc
untuk perintah Git yang paling sering Anda gunakan:Perhatikan juga bahwa Anda dapat membuat alias di dalam Git itu sendiri:
Ini memungkinkan Anda mengetik,
git ci
bukangit commit
, dan seterusnya.sumber
git hash-object
ataugit interpret-trailers
? Saya hanya menawarkan ini sebagai alternatif karena sejauh yang saya tahu, pertanyaan yang diajukan tidak benar-benar ada.ci
untukcommit
saya juga menggunakan alias shellg
untukgit
, ini mengurangi sebagian mengetik dan membuat saya tinggal di shell yang saya sukai.Saya penggemar berat menggunakan alias di ~ / .bash_profile untuk GitBash saya. Jika Anda menggunakan pendekatan ini, berikut adalah beberapa favorit saya:
sumber
commit
ataupush
karena saya ingin beberapa detik tambahan (saat mengetik) untuk memastikan bahwa saya tidak menghancurkan sesuatuGunakan editor Anda.
Ketikkan perintah like
commit
dari editor favorit Anda seperti vs code dan lebih efisien dengan git:Atau ketik
git
untuk mendapatkan semua perintah:sumber
Seorang teman saya membuat skrip bash kecil yang menyelesaikan ini. Ini disebut Replify .
sumber
eval
dalam sumber naskah asli bukan ide terbaik. Beri tahu teman Anda untuk menggunakanwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
sebagai gantinyaIni cara lain. Ini juga tidak cukup dengan apa yang diminta, tetapi saya telah menggunakannya untuk beberapa waktu dan itu cukup bagus. Tambahkan baris berikut ke Anda
~/.bashrc
:Sekarang menekan Tab pada prompt Bash kosong akan mengetik "git".
sumber
~/zshrc
, untuk tcsh, Anda akan memasukkannya~/tcshrc
, dll.Saya tahu ini adalah jawaban yang sangat terlambat tetapi pertanyaan ini benar-benar menyentuh catatan saya karena saya telah
berurusan denganpenderitaan dari pengulangan semacam ini untuk beberapa waktu sekarang.Saya tidak yakin tentang Anda tetapi saya sejujurnya tidak (saya ulangi TIDAK ) ingin membuat alias untuk setiap
git
perintah, jadi alih-alih saya menulis skrip python bernama NoGit untuk menyelesaikan masalah ini:NoGit adalah skrip python sederhana untuk mencegah pengulangan kata kunci "git" yang tidak perlu.
Dokumentasi:
%undo
perintah menghapus perintah terakhir dari stack%run
perintah menjalankan perintah dalam stack dan membersihkan tumpukan%exit
perintah menutup CLI tanpa melakukan apa-apactr+c
sama dengan menjalankan%run; %exit
git.history
dalam folder yang sama dengan skripgit
di awal perintah dan skrip tidak akan menggandakannya ( EG:git init
tidak menjadigit git init
)Contoh perintah:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Informasi tambahan (untuk pengguna Linux):
Jika mau, Anda dapat menghapus
.py
ekstensi dan mengubahnya menjadi yang dapat dieksekusi menggunakan:Maka alih-alih memanggil skrip seperti ini:
Anda malah menjalankan ini:
Informasi tambahan (untuk orang malas):
Jika Anda malas dan tidak ingin mengetik,
./
maka Anda dapat memindahkan skrip ini ke/bin/
folder Anda dan membuat alias untuk itu.Jika Anda benar- benar malas, gunakan perintah berikut:
Jika Anda benar- benar malas, salin dan tempel satu baris berikut:
Jika kemalasan Anda telah mencapai tingkat yang sebelumnya tidak diketahui oleh manusia, berikut adalah versi yang lebih ringkas dari satu kalimat yang sama:
Semoga berhasil.
sumber
Pendekatan lain yang akan bekerja dengan perintah apa pun: gunakan Ctrl + R (reverse-i-search).
Reverse-i-search memungkinkan Anda untuk mencari riwayat perintah Anda. Ulangi Ctrl + R setelah menekan string pencarian Anda untuk mengulangi pencarian lebih jauh ke belakang dengan string yang sama.
Anda hanya perlu mengetikkan perintah sekali, maka Anda dapat memanggil kembali perintah itu dari setiap substring dari perintah. Dalam kebanyakan kasus, Anda dapat mengingat seluruh perintah yang sangat panjang dan berbagai variannya hanya dengan dua hingga tiga huruf pencarian yang ditempatkan dengan baik. Tidak ada prakonfigurasi yang dibutuhkan selain menggunakan shell Anda secara normal dan itu adalah adaptasi sendiri terhadap bagaimana Anda menggunakan shell, cukup ketik perintah penuh sekali dan perintah akan secara otomatis ditambahkan ke riwayat perintah Anda.
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
Selain itu, Ctrl-R bekerja tidak hanya pada bash, tetapi banyak program yang menggunakan pustaka readline (dan ada banyak di antaranya), seperti shell Python, IPython, shell mysql, shell psql, irb (ruby), dll.
sumber
Dalam contoh Anda, Anda membandingkannya dengan prompt MySql. Cara kerjanya adalah proses MySql dimulai, dan Anda memberikan perintah kepada proses itu. Karena itu, mengapa tidak menulis yang serupa dalam bahasa pilihan Anda? Berikut ini contoh sederhana dalam C ++:
Harap dicatat bahwa saya baru saja menulisnya dari memori dan saya tidak memeriksanya dengan kompiler. Mungkin ada kesalahan sintaksis sepele.
sumber
Untuk hal-hal dasar, Anda dapat melakukan:
Keluar dengan ctrl + c
sumber
;
after do mengarah kebash: syntax error near unexpected token
; '' Kedua,eval
bagian itu rentan terhadap kerentanan. Sebagai contoh, perhatikan apa yang terjadi jika saya mengetikkanstatus;cat /etc/passwd
shell kecil ini. Contoh yang tidak berbahaya, tetapi Anda mendapatkan ide apa yang bisa terjadi. Anda dapat menyederhanakannya menjadiwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
Ini tentu saja bukan bukti peluru, tetapi 1 - itu lebih sederhana dan 2 - menghindari eksekusi perintah non-git (berdasarkan tanda kutip ganda). Tidak ideal, hanya sedikit lebih baiksystem
atau\!
setidaknya pada awalnya. Di mana asumsinya mungkin bahwa "repl" ini menjalankangit
perintah saja, sebenarnya memungkinkan lebih dari itu.eval
bukan ide terbaik untuk menjalankan perintah, terutama ketika input yang dikontrol pengguna terlibat.do
. Terima kasih! re: security: Ini jelas tidak dimaksudkan untuk didistribusikan sebagai aplikasi terpisah. Masukkan saja.bash_profile
jika Anda tidak suka mengetik git. Saya tidak terlalu khawatir tentang hal itu menjadi "tidak aman". Jika Anda menempelkan hal-hal di bash Anda yang tidak Anda mengerti (termasuk skrip oneliner ini), Anda akan memiliki waktu yang buruk. Saya suka ini karena sederhana, mudah ditulis dan mudah dibaca, dan mudah diperbaiki.Ketika saya menggunakan Windows 7 dengan Conemu, saya menambahkan yang berikut ini ke skrip startup lingkungan dev saya:
Dengan ini, saya bisa menggunakan
g
perintah alih-alih mengetikgit
. Terakhir saya mencoba dengan Windows 10 dan Conemu, tidak berhasil, ada bug, saya pikir, tapi patut dicoba.sumber
Gunakan editor kurung, mudah untuk menggunakan kode Anda dan perintah git, juga memiliki banyak fitur.
Di sudut kanan atas ikon binokular kedua digunakan untuk menginstal ekstensi.
Cari ekstensi
brackets git
seperti gambar di atas dan instal.Kembali ke sudut kanan atas akan muncul ikon keempat, jadi klik dan lihat perubahan seperti gambar di atas.
Jika Anda ingin memasang tanda kurung, gunakan perintah berikut:
Untuk informasi lebih lanjut, Anda dapat membaca: Cara Menginstal Editor Kode Kurung di Ubuntu dan Linux Mint di Ubuntupit .
sumber