私はconventional commits標準に準拠しています。スカッシュを実行してをマージするシェル関数を作成し、解析されたメッセージで変更をコミットして、コーディングのスピードとコミットの一貫性を改善します。シェル関数内の引数を解析し、それを使って複数行コミットを行うにはどうすればよいですか?
問題はです。引数を解析し、その結果をコミットメッセージに使用します。
私の実際のコード:
function git_merge_squash() { git merge --squash "$1" shift msg= echo $'\n'"$*" | tr . \\n | tr - ' ' # echo $msg git commit -m $msg } alias gmrs=git_merge_squash
使用例:
$ gmrs f/my_branch Features.- Signup.-- Save hashed password asynchronously.-- Retrieve token.- Login.-- Retrieve token.- Logout.-- Destroy token
期待される結果:
git merge --squash f/my_branch git commit -m " Features Signup Save hashed password asynchronously Retrieve token Login Retrieve token Logout Destroy token"
あなたが推測できるように、私の実際のコードでは、私のコメントecho
は、私が欲しいメッセージを正確に表示します。しかしgit commit -m
コマンドは$msg
を文字列として受け取ります。 -F
フラグを使ってファイル入力をシミュレートするなど、複数のオプションを試しましたが、うまくいかなかったのです。
どのように目標を達成できますか?前もって感謝します。私はそれを働い
コミットメッセージに複数行の場合は、\ nも追加する必要があると思います。 –
'git commit -m" msg msg "(msg varを囲む引用符で囲みます)? – zigarn
これらのソリューションは機能しませんでしたが、とにかくありがとうございます。 –