Saya mencoba membuat alias dengan parameter untuk git add / commit / push saya yang sederhana.
Saya telah melihat Fungsi dapat digunakan sebagai alias jadi saya mencoba tetapi saya tidak membuatnya ..
sebelum saya memiliki:
alias gitall="git add . ; git commit -m 'update' ; git push"
Tetapi saya ingin dapat mengubah komit saya:
function gitall() {
"git add ."
if [$1 != ""]
"git commit -m $1"
else
"git commit -m 'update'"
fi
"git push"
}
(saya tahu ini adalah praktik git yang buruk)
csh
tidak, tetapi tidak memiliki fungsi sama sekali. (Saya tidak tahu apakah tidak ada fungsi karena alias dapat mengambil parameter, atau jika alias mengambil parameter karena tidak ada fungsi, atau apa.)gitall "my commit message"
? atau Anda akan menyebutnyagitall('my commit message')
gitall "my commit message"
.getall() {
tanpa sebelumnyafunction
- tentu, itu legal di zsh, tetapi satu-satunya perubahan itu akan membuat ini kompatibel dengan semua shell yang sesuai dengan POSIX.git commit -m "${1:-update}"
(perluasan parameter dengan default disediakan), maka Anda tidak memerlukanif
pernyataan itu sama sekali.Jika Anda benar-benar perlu menggunakan alias dengan parameter karena suatu alasan, Anda dapat meretasnya dengan menyematkan fungsi di alias Anda dan segera menjalankannya:
alias example='f() { echo Your arg was $1. };f'
Saya melihat pendekatan ini banyak digunakan dalam alias .gitconfig.
sumber
example
.alias example='(){ echo Your arg was $1. ;}'
Saya menggunakan fungsi ini di file .zshrc:
function gitall() { git add . if [ "$1" != "" ] then git commit -m "$1" else git commit -m update # default commit message is `update` fi # closing statement of if-else block git push origin HEAD }
Di sini
git push origin HEAD
bertanggung jawab untuk mendorong cabang Anda saat ini di jarak jauh.Dari command prompt jalankan perintah ini:
gitall "commit message goes here"
Jika kita hanya menjalankan
gitall
tanpa pesan komit maka pesan komit akanupdate
seperti fungsinya.sumber
"git add ."
dan perintah lain di antara"
hanyalah string untuk bash, hapus"
s.Anda mungkin ingin menggunakannya
[ -n "$1" ]
sebagai gantinya di tubuh if Anda.sumber
Saya mencoba jawaban yang diterima (Kevin) tetapi mendapatkan kesalahan berikut
defining function based on alias `gitall' parse error near `()'
Karenanya mengubah sintaks ini, berdasarkan masalah git dan itu berhasil.
function gitall { git add . if [ "$1" != "" ] then git commit -m "$1" else git commit -m update fi git push }
sumber