Como rastrear $ HOME com git

10

Gostaria de acompanhar meu diretório $ HOME com o git. Eu tenho muitos outros repositórios git em outros subdiretórios (por exemplo, $ HOME / projects / repo_1 e assim por diante), que não devem ser rastreados, pois já são.

Eu encontrei o git-home-history, mas parece no arquivo que o projeto não está mais desenvolvido ativamente.

Qual abordagem você recomendou? Ghh é maduro o suficiente?

Estou em um Mac, mas também estou interessado em soluções de plataforma cruzada.

obrigado

ps: Procurei, mas não encontrei duplicatas, aponte-as se isso já tiver sido discutido.

Francesco
fonte

Respostas:

5

Eu venho fazendo isso há algum tempo usando o git. Não rastreio o diretório pessoal inteiro, apenas as partes que estou mudando ativamente. Isso inclui meu diretório home / bin, que contém muitos scripts pequenos, meu diretório .vim e alguns projetos maiores em outros diretórios. Também existem algumas configurações para terminais e openbox, além de vários outros aplicativos, adicionados ao repositório.

Isso funciona bem o suficiente, pois todas essas coisas têm a mesma permissão definida e eu não me importo com o carimbo de data / hora original. Está chegando ao ponto em que estou planejando dividi-lo em submódulos usando git filter-branch. Isso é um pouco complicado, já que existem interdependências entre arquivos em diferentes subdiretórios (por exemplo, alguns scripts .vim podem chamar scripts do meu diretório bin ... não é um exemplo muito bom, mas espero que você entenda bem).

Não encontrei soluções mais abrangentes, mas também não procurei, incluindo o git-home-history. Parece que seria bastante complicado colocar todo o diretório inicial sob controle de revisão, e haveria muitas variáveis. Por exemplo, se você colocar seu (s) perfil (s) do firefox sob controle de revisão, acabará acumulando grandes quantidades de diferenciais binários. Também existem coisas como chaves ssh que geralmente são melhor perdidas do que duplicadas.

Se você deseja rastrear permissões (além do bit executável, que o git já rastreia), aparentemente existe um gancho que fará isso. É mencionado neste segmento de falha do servidor .

intuído
fonte
Você entendeu meu caso de uso: na verdade, estou interessado em scripts e configurações de versão. Eu irei com esta abordagem básica.
19710 Francesco
FYI: O problema que estou enfrentando atualmente é que não quero ramificar meu diretório .vim ao trabalhar em novos componentes. Estou considerando várias abordagens diferentes: provavelmente terminarei dividindo-o em um módulo separado usando filter-branche configurando um clone de 'trabalho em andamento' em um subdiretório ~. Essa parece ser uma estratégia geralmente útil: espero que seja igualmente útil clonar todo o meu repositório de diretórios pessoais e testá-los depois de definir $ HOME no diretório do clone. Não tenho certeza de quão universalmente respeitada é essa variável de ambiente, mas verei.
intuited
0

Você pode usar o git em seu diretório pessoal e, em seguida, usar os submódulos do git ou a árvore de revisão para os projetos externos do git nos quais você trabalha.

edgester
fonte