Upgrade to Pro — share decks privately, control downloads, hide ads and more …

7Masters - GIT

7Masters - GIT

Sobre o 7Masters:
7 dos maiores especialistas em Git do Brasil farão uma
Apresentação técnica de 7 minutos sobre alguma inovação que vem realizando nos últimos meses.

Link: https://setemasters.imasters.com.br/edicoes/git/

Diego Martins de Pinho

November 27, 2017
Tweet

More Decks by Diego Martins de Pinho

Other Decks in Technology

Transcript

  1. Diego Martins
    de Pinho

    View full-size slide

  2. file: foto.png [ADDED]
    file: dados.json [ADDED]
    {
    “nome”: “Diego Martins de Pinho”,
    “idade”: 25,
    “profissoes” : [
    “Empreendedor”,
    “Desenvolvedor”
    ]
    }

    View full-size slide

  3. Que tipos de customização podemos fazer?
    1. Git Configuration
    2. Git Attributes
    3. Git Hooks

    View full-size slide

  4. Git Configuration
    As configurações são divididas em client-side e
    server-side.
    A grande maioria dos comandos é de client-side
    e permitem configurar basicamente todos os
    aspectos do git.
    Todas as configurações estão disponíveis com o
    comando:
    $ man git-config

    View full-size slide

  5. Git Configuration - Comandos
    $ git config --global ...
    user.name
    user.email
    core.editor
    commit.template
    core.pager
    user.signingkey
    core.excludesfile
    help.autocorrect
    color.ui
    color.*
    merge.tool
    core.autocrlf
    receive.fsckObjects
    receive.denyNonFastForwards
    receive.denyDeletes
    client-side
    server-side

    View full-size slide

  6. Git Attributes
    São atributos feitos somente para
    determinados caminhos e/ou arquivos.
    Elas nos permitem…
    1. Separar estratégias de merges para
    arquivos ou diretórios específicos
    2. Dizer ao git como diferenciar arquivos
    que não são de texto
    3. Filtrar o conteúdo antes mesmo de
    colocá-lo ou removê-lo do git

    View full-size slide

  7. Identificar Arquivos
    Binários
    Podemos identificar quais
    arquivos são binários para
    impedir o Git de tentar fazer
    comparações. Ex: arquivos
    criados pela IDE
    *.pbxproj binary
    Git Attributtes - Exemplos
    No arquivo .gitattributtes
    Diff de Arquivos
    Binários
    Temos como definir a
    maneira como o diff de
    arquivos binários será feita.
    Ex: arquivos do word
    *.doc diff=word
    Exportação do
    Repositório
    É possível definir como
    arquivos no projeto serão
    exportados. Ex: ignorar uma
    pastas de testes (test/)
    test/ export-ignore

    View full-size slide

  8. Git Hooks
    Os hooks são uma maneira para disparar scripts
    personalizados quando certas ações importantes
    ocorrerem.
    Existem dois grupos desses hooks: client-side e
    server-side.
    É possível utilizar os hooks para qualquer tipo de
    coisa.

    View full-size slide

  9. Git Hooks - Exemplos
    No diretório .git/hooks ...
    pre-commit
    prepare-commit-msg
    commit-msg
    post-commit
    applypatch msg
    pre-applypatch
    post-applypatch
    pre-rebase
    post-checkout
    post-merge
    Committing-Workflo
    w Hooks
    E-mail Workflow
    Hooks
    Outros Hooks de
    Cliente

    View full-size slide

  10. Referências
    1. https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
    2. https://git-scm.com/docs/git-config.html
    3. https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

    View full-size slide

  11. Obrigado!
    Twitter:
    @DiegoPinho

    View full-size slide