Eu uso guias para indentação em meus programas python, mas gostaria de colaborar (usando o git) com pessoas que usam espaços.
Existe uma maneira de o git converter automaticamente entre espaços e guias (digamos, 4 espaços = 1 guia) ao pressionar / buscar? (semelhante à conversão CR / LF)
git
tabs
indentation
Olivier Verdier
fonte
fonte
Respostas:
Aqui está a solução completa:
No seu repositório, adicione um arquivo
.git/info/attributes
que contenha:Linux / Unix
Agora execute os comandos:
OS X
Primeiro instale o coreutils com o brew:
Agora execute os comandos:
Todos os sistemas
Agora você pode verificar todos os arquivos do seu projeto. Você pode fazer isso com:
e todos os arquivos python agora terão guias em vez de espaços.
Editar : alterou o comando de saída forçada. Você deve comprometer seu trabalho primeiro, é claro.
fonte
homebrew
e executebrew install coreutils
).Sim, uma solução em potencial é usar um driver de filtro de atributo git (consulte também o livro GitPro ), para definir um mecanismo de manchas / limpeza.
Dessa maneira:
Você pode declarar esse driver de filtro (nomeado aqui '
tabspace
') em.git/info/attributes
(para um filtro aplicado a todos os arquivos no repositório Git), com o seguinte conteúdo:Agora execute os comandos:
Consulte a resposta de Olivier para obter um exemplo concreto de um conjunto de instruções tão limpas / borradas.
fonte
--global
bandeira, já que isso implicaria, você envia espaços para cada projeto de colaboração ....gitattributes
. Mas sim, é mais fácil entender se a configuração é mantida local no repositório. Eu editei a resposta.Informações muito úteis para todos que usam o GitHub (ou outro serviço similar)
~/.gitconfig
Então eu tenho dois arquivos:
attributes
e
attributes2
Trabalhando em projetos pessoais
Dessa forma, quando você finalmente empurra seu trabalho no github, ele não parecerá bobo na visualização de código com
8 space tabs
o comportamento padrão em todos os navegadores.Contribuindo para outros projetos
Dessa forma, você pode trabalhar com guias normais em
2 space indented
projetos.É claro que você pode escrever uma solução semelhante para a conversão a partir da
4 space to 2 space
qual é o caso, se quiser contribuir com projetos publicados por mim e tender a usar 2 espaços durante o desenvolvimento.fonte
.gitattributes
arquivo em seu repoSe você estiver no Windows, terá algumas etapas extras para que a solução do @Olivier Verdier funcione.
fonte