Como armazenar corretamente dotfiles em um repositório git centralizado

3

Gostaria de colocar todos os meus dotfiles (como .profile, .gitconfig, etc.) em um repositório git central, para que eu possa acompanhar com mais facilidade as alterações. Eu fiz isso, mas gostaria de saber como lidar adequadamente com eles, mantendo-os em sincronia com os reais em ~ /. Eu pensei que você poderia simplesmente ligar os dois usando ln , mas isso não parece funcionar como eu esperava, ou seja, se eu editar um arquivo, o outro não muda. Talvez eu tenha usado incorretamente o comando ln , ou entendi mal o modo como os hard links funcionam.

Como as pessoas costumam fazer isso? A julgar pelo GitHub, é uma coisa muito popular de se fazer, então certamente há uma maneira perfeita de fazer isso com alguém.

A propósito, estou no Mac OS X 10.6.

    
por asmeurer 26.06.2011 / 08:40

4 respostas

3

Muitos programas do OS X, como o TextEdit , salve os arquivos de uma maneira que quebre os links físicos.

Pelo menos no Linux, os links simbólicos são geralmente usados para essa finalidade:

$ ln -s ~/dotfiles/bashrc ~/.bashrc
    
por 27.06.2011 / 00:03
2

Eu tenho ajudado a criar uma ferramenta para lidar com isso chamado freshshell . É semelhante a saudades de casa com o recurso adicional de poder extrair arquivos de qualquer repositório do GitHub, a idéia é que você pode pegar partes de outras pessoas ao lado do seu.

fresh is a tool to source shell configuration (aliases, functions, etc) from others into your own configuration files. We also support files such as ackrc and gitconfig. Think of it as Bundler for your dot files.

    
por 25.11.2012 / 02:15
2

Eu recomendo altamente vcsh e myrepos para gerenciar seus dotfiles via Git (e em várias máquinas).

O vcsh de Richard Hartmann permite que você gerencie todos os seus dotfiles no Git sem a necessidade de configurar vários links simbólicos. A chave é que qualquer número de repositórios Git pode coexistir em paralelo em seu diretório inicial sem entrar na maneira um do outro. Além disso, o vcsh foi projetado com myrepos em mente. Esta ferramenta permite gerenciar todos os seus repositórios de controle de versão de uma só vez. Mais notavelmente, o sr pode atualizar todos os seus repositórios com uma única chamada. Ideal para configurar todos os seus dotfiles em uma nova máquina com o menor esforço possível.

Acabei de publicar uma entrada de blog que explica como configurar essas ferramentas para que você possa gerenciar dotfiles rapidamente e sem esforço . Talvez isso seja útil para você.

    
por 10.08.2014 / 07:54
1

Há um rubygem: homesick que resolve tudo isso! suporta github fora da caixa e irá simbolizar tudo para você.

protip : se você adicionar alterações aos dotfiles, ainda precisará clonar os repositórios em um diretório separado, fazer alterações de lá e push. depois puxe-os com saudades de casa.

adicional se você estiver usando o VIM?:

use o patógeno porque ele funciona muito bem ao gerenciar os dotfiles no git. Plugins podem ser adicionados como submódulos e serão carregados sem esforço.

    
por 21.10.2011 / 10:35