2016-10-06 15 views
1

서브 모듈을 가진 자식 저장소가 있습니다. 일반적으로 동일한 커밋 메시지로 repo 및 하위 모듈을 커밋합니다. 내 REPO 및 서브 모듈을 커밋 할 때 현재 내가하고있어 다음foreach git submodule foreach

cd submodule 
git add --all 
git commit -m "message" 
git push 
cd .. 
git add --all 
git commit -m "message" 
git push 
나는 나를 예를 들어, 하나의 명령으로이 작업을 수행 할 수있는 별칭을 싶습니다

git commit-including-submodule "blah" 

간단하지만 별칭에는 몇 가지 문제가 있습니다.

[alias] 
    commit-including-submodule = "!f() { \ 
     if [ -u $1 ]; then \ 
      echo "commit message required"; \ 
     else \ 
      git submodule foreach 'git add --all && git commit -m \"$1\"'; \ 
      git add --all && git commit -m $1; \ 
      echo "success"; \ 
     fi; \ 
     }; f" 

는 그러나 서브 모듈에 메시지를 커밋됩니다

자식 --all가 & & 자식

"$ 1"-m을 커밋 추가 : 내가있어 가장 가까운 다음은

예, 실제로 커밋 메시지입니다. 약간 이상하게 보입니다. 나는 이것을 알아낼 수 없었다. 아무도 도와 줄 수 있습니까?

감사합니다.

답변

0

따옴표를 성공적으로 벗어날 수없는 것 같습니다. 나는 이것이 효과가 있다고 생각한다.

[alias] 
    commit-including-submodule = "!f() { \ 
     if [ -u $1 ]; then \ 
      echo "commit message required"; \ 
     else \ 
      git submodule foreach 'git add --all && git commit -m '"$1"'; \ 
      git add --all && git commit -m $1; \ 
      echo "success"; \ 
     fi; \ 
     }; f"