2016-10-06 4 views
1

У меня есть git-хранилище, которое имеет подмодуль. Обычно я беру репо и подмодуль с тем же сообщением о фиксации. В настоящее время, когда я хочу, чтобы совершить свой репозиторий и подмодуль, я делаю следующее:commit внутри git subodule 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 & & мерзавца совершить -m "$ 1"

Да, это фактическое сообщение фиксации, которое кажется немного странным. Я не смог понять это. Кто-нибудь может помочь?

Спасибо.

ответ

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" 

 Смежные вопросы

  • Нет связанных вопросов^_^