git add -A
とを使用するgit commit -a
ことで、現在のリポジトリにすべての変更を追加/コミットできます。ただし、すべてのサブモジュールを追加/コミットに含めて、それぞれに同じコミットメッセージを適用する方法はありますか?
質問する
551 次
2 に答える
6
エイリアスを使用できます。スクリプトを作成する:例~/supercommit.sh
#!/bin/bash -e
if [ -z $1 ]; then
echo "You need to provide a commit message"
exit
fi
git submodule foreach git add -A .
git submodule foreach git commit -am "$1"
git add -A .
git commit -am "$1"
そして、実行可能としてマークします(chmod +x
)。次に、エイリアスを作成します。
git config alias.supercommit '!~/supercommit.sh "$@"; #'
それで十分です(少しテストします)
于 2012-12-07T20:59:12.690 に答える
1
さて、これは9年前に質問され、答えられました、そしてそれは私が同じことを探していたときに私を助けました。しかし、私はそれを機能させるためにいくつかの問題に直面したので、同じ問題に直面する可能性のある他の人を助けるためにこれを投稿しています。
問題 :
- 「2行目:[:引数が多すぎます」で失敗します
- サブモジュールに変更がない場合は失敗します
修正:
- 2行目に$1の前後に引用符( ")を追加します。これがないと、複数の単語を含むコメントは複数の引数として扱われます。
- コミットする前に、サブモジュールが変更を段階的に行っているかどうかを確認してください
更新されたコード
#!/bin/bash -e
if [ -z "$1" ]; then
echo "You need to provide a commit message"
exit
fi
git submodule foreach "
git add -A .
git update-index --refresh
commits=\$(git diff-index HEAD)
if [ ! -z \"\$commits\" ]; then
git commit -am \"$1\"
fi"
git add -A .
git commit -am "$1"
于 2021-12-15T01:11:11.703 に答える