Com o SVN, eu tinha um único grande repositório que mantive em um servidor e fiz check-out em algumas máquinas. Este era um sistema de backup muito bom e me permitiu trabalhar facilmente em qualquer uma das máquinas. Eu poderia fazer o checkout de um projeto específico, fazer um commit e atualizar o projeto 'master', ou eu poderia fazer o checkout de tudo.
Agora, eu tenho um monte de repositórios git, para vários projetos, vários dos quais estão no github. Também tenho o repositório SVN que mencionei, importado por meio do comando git-svn ..
Basicamente, gosto de ter todo o meu código (não apenas projetos, mas trechos e scripts aleatórios, algumas coisas como meu currículo, artigos que escrevi, sites que fiz e assim por diante) em um grande repositório que posso facilmente clonar em um remoto máquinas ou memory-sticks / harddrives como backup.
O problema é que, uma vez que é um repositório privado, e o git não permite o check-out de uma pasta específica (que eu poderia enviar para o github como um projeto separado, mas as alterações aparecem no master-repo e no sub- repos)
Eu poderia usar o sistema de submódulo git, mas ele também não age como eu quero (submódulos são ponteiros para outros repositórios e não contêm realmente o código real, portanto, é inútil para backup)
Atualmente, tenho uma pasta de git-repos (por exemplo, ~ / code_projects / proj1 / .git / ~ / code_projects / proj2 / .git /), e depois de fazer alterações em proj1 eu faço git push github
e copio os arquivos em ~ / Documents / code / python / projects / proj1 / e faz um único commit (ao invés dos numerosos nos repositórios individuais). Então faça git push backupdrive1
, git push mymemorystick
etc
Então, a pergunta: como fazer seu código pessoal e projetos com repositórios git e mantê-los sincronizados e com backup?