Nota do Linux Kamarada:
Esta é uma tradução não oficial da notícia originalmente publicada por Sébastien ‘sogal’ Poher no site news.opensuse.org.
Os arquivos comumente chamados de dotfiles (“arquivos ponto”, em uma tradução literal) são todos aqueles pequenos arquivos de texto puro que contém as configurações dos seus programas. A maioria deles está em sua pasta pessoal ($HOME
), mas são arquivos ocultos, uma vez que seus nomes começam com um ponto (daí serem chamados de dotfiles). Alguns aplicativos os armazenam na pasta $HOME/.config
.
Para gerenciá-los (acompanhar suas alterações, movê-los entre diferentes computadores, fazer backup deles), existem algumas soluções:
- o bom e velho pendrive
- rsync
- sincronizá-los na “nuvem”
- movê-los para uma pasta central e criar links simbólicos para onde eles deveriam estar
Neste artigo, vamos focar em como gerenciá-los de forma simples e eficiente com o Git.
Git ao resgate!
Neste exemplo, vamos usar a pasta $HOME/dotfiles
como repositório do Git, mas fique a vontade para usar outra pasta, de acordo com a sua necessidade.
Primeiramente, vamos inicializar este repositório:
1
$ git init --bare $HOME/dotfiles
Depois, como todos os comandos git que usaremos se referirão a este repositório, é recomendável criar um alias, como:
1
alias dotfiles='/usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME'
Você pode adicionar essa linha ao arquivo de configuração do seu $SHELL
($HOME/.bashrc
, se você usa Bash, ou $HOME/.zshrc
, se você usa Zsh).
Em seguida, vamos configurar o Git para que ele não mostre todos os arquivos não rastreados (untracked files). Precisamos fazer isso porque vamos usar toda a pasta pessoal como pasta de trabalho (work tree).
1
$ dotfiles config --local status.showUntrackedFiles no
A essa altura, você já deve ser capaz de verificar o estado do repositório:
1
$ dotfiles status
Você pode adicionar seus arquivos de configuração e comitar como desejar. Por exemplo, vamos adicionar nosso .bashrc
:
1
2
$ dotfiles add .bashrc
$ dotfiles commit -m ".bashrc adicionado"
Agora basta adicionar um repositório remoto — um servidor Git hospedado por você mesmo (self-hosted) ou um online — e enviar suas mudanças para ele:
1
2
$ dotfiles remote add origin git@seugit.exemplo.com/dotfiles.git
$ dotfiles push
Nota do Linux Kamarada:
Serviços online como GitHub, Bitbucket e GitLab permitem que você crie repositórios privados. A menos que sua intenção seja realmente compartilhar esses arquivos de configuração com alguém, recomendo que você se atente a esse detalhe e crie um repositório privado, para que só você tenha acesso aos seus arquivos pessoais.
Configurando um novo computador
Agora que você já configurou tudo no primeiro computador, vamos configurar um novo computador com os dotfiles que você tem no seu repositório.
Primeiro, faça um clone local do seu repositório online:
1
$ git clone --bare git@seugit.exemplo.com/dotfiles.git $HOME/dotfiles
Novamente, você deve definir o mesmo alias de antes:
1
alias dotfiles='/usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME'
Lembre-se de adicioná-lo ao arquivo de configuração do seu $SHELL
.
Agora basta aplicar as alterações do repositório que você acabou de clonar ao seu sistema:
1
$ dotfiles checkout
Se alguns dos arquivos já existirem, você receberá uma mensagem de erro. Provavelmente isso ocorrerá com os arquivos criados por padrão durante a instalação do openSUSE e a criação da sua conta do usuário, como o arquivo $HOME/.bashrc
. Não se preocupe, apenas renomeie ou exclua os arquivos que já existiam.
Agora, sempre que você alterar seus arquivos de configuração rastreados pelo Git, lembre-se de comitar e enviar suas alterações.
Referências
Os artigos a seguir foram usados como referências deste artigo. Muito obrigado aos seus autores!
- Easily manage your dotfiles with git
- How to make your Dotfile management a painless affair
- How to manage your dotfiles with git
Nota do Linux Kamarada:
As referências acima foram citadas pelo autor do texto original:
Obrigado, Sébastien ‘sogal’ Poher, por essa excelente dica!