Ganchos Git – como não enviar código desagradável?

Provavelmente todo mundo enviou algum código para um branch remoto que não deveria ser enviado. Quero dizer coisas como:

  • binding.pry
  • throw
  • exit
  • console.log
  • e outras coisas legais;)

Para evitar essa situação, criei um gancho git para pre-commitscript.
Ele verifica o código, se as alterações atuais incluem palavras-chave, você não será capaz de criar um commit. Exemplo

# user.rb
class User
def initialize
binding
.pry
end

def create
throw :create
end
end

Quando você liga, git commitvocê recebe:

# Check following lines:
# user.rb contains binding.pry at line 4.
# user.rb contains throw at line 8.

Se você quiser usá-lo, terá que copiar o pre-commitarquivo deste repo para o seu .git/hooksrepositório.

Você também pode copiá-lo para o diretório de modelos, por exemplo, ou definir seu próprio diretório de modelos como aqui ./usr/local/Cellar/git/1.8.2/share/git-core/templates/hooks/

Se você perceber que algo está errado, você pode relatar um problema no Github ou me enviar uma solicitação de pull ou apenas deixar um comentário.