Remover ramificação de todos os submódulos

2

Eu tenho um projeto com muitos submódulos e quero excluir todos os ramos remotos chamados foo nos submódulos, se existir .

Estou tentando seguir:

git submodule foreach git push origin :foo

Isso funciona como esperado se o branch existir em todos submódulos, mas se algum dos submódulos estiver faltando o branch, o foreach parará:

Stopping at 'modules/bar'; script returned non-zero status.

Como posso suprimir o erro?

    
por Marcus Johansson 14.05.2013 / 09:57

1 resposta

3

Na página man do submodule git :

A non-zero return from the command in any submodule causes the processing to terminate. This can be overridden by adding || : to the end of the command.

Isso significa que o seguinte deve fazer o trabalho:

git submodule foreach 'git push origin :foo || :'

O || é um OR e executa o próximo comando se o primeiro retornar diferente de zero, o : retornará verdadeiro.

    
por 14.05.2013 / 10:16

Tags