Aby zastosować dodatkowe parametry do wszystkiego poza końcem aliasu "wiersz poleceń", będziesz musiał umieścić polecenia powłoki w skrypcie. Możesz to zrobić za pomocą zewnętrznego skryptu (np. jdelStrother’s answer) lub możesz to zrobić za pomocą skryptu powłoki "inline".
Można użyć -m
karmić git commit
swoją nową wiadomość lub wybierz opcję -C HEAD
/--reuse-message=HEAD
aby go wykorzystać istniejącą wiadomość i Autor (to również ponowne użycie autor datownika, ale jesteś resetowanie że z --date=…
). Użycie którejkolwiek z tych opcji uniemożliwi Gitowi otwarcie edytora wiadomości zatwierdzenia.
Tu jest jako „inline” skrypt powłoki:
git config --global alias.sync '!sh -c '\''git commit --amend --date=today ${1+-m} "${1---reuse-message=HEAD}" && git rebase master'\'' -'
Rdzeniem tego małego skryptu jest para warunkowych rozszerzeń parametrów:
${1+-m} "${1---reuse-message=HEAD}"
Po wywołaniu go z dodatkowym Parametr (tj. komunikat o zastąpieniu dziennika), rozwijają się do dwóch słów powłoki: -m "<your new log message>"
. Jeśli nie podasz dodatkowego parametru, rozwiną się one do pojedynczego słowa: "--reuse-message=HEAD"
.
Ważne jest również końcowe kreskowanie; może to być dowolne słowo powłoki, chodzi o to, że coś musi tam być, ponieważ powłoka użyje go do zainicjowania swojego parametru $0
(który zwykle ma wartość domyślną, więc jest bezużyteczny dla samego rozszerzenia warunkowego).
Gdybym źle i rzeczywiście chcesz zobaczyć edytor, jeśli nie dostarczać dodatkowego parametru, a następnie użyć jednego ekspansję ${1+-m "$1"}
zamiast parę rozszerzeń.
Prawdopodobny duplikat http://stackoverflow.com/q/3321492/923794 – cfi