我有大量的个人脚本,我想开始使用git进行版本控制。我以前的代码组织如下:

~/code/python/projects/ (for large stuff, each project contained in an individual folder)
~/code/python/scripts/ (single file scripts all contained in this directory)
~/code/python/sandbox/ (my testing area)
~/code/python/docs/ (downloaded documentation)

~/code/java/... (as above)

现在我将开始使用git对代码进行版本控制,这样我就可以拥有历史记录,并将所有代码备份到远程服务器。
我知道如果我使用svn,我会将整个“~/code/”目录保存在一个大型存储库中,但我知道这不是使用git的好方法。
我在网上看到的大多数信息都建议将我的所有项目文件夹放在一个单独的地方(如中所示,python或java没有单独的目录),每个项目都包含自己的git存储库,并且只需要有一个“snippets”目录,其中包含所有可以稍后转换为项目的单个文件脚本/实验。
但是我不确定我是怎么把所有的代码目录整合到一个区域的。有没有一个很好的方法来保持我的独立代码目录的完整性,还是不值得这么做?也许我只是附加到单独的代码目录,因为我从来没有知道其他的…
另外(顺便说一句),我想很快就能看到我所有项目和脚本的历史记录。所以我可以看到我最近创建的项目。以前,我在所有项目的开头都会保留一个数字,002project003project
在git中,有没有自动或简单的方法可以做到这一点,而不必在所有项目名称中添加数字?
我愿意接受任何实用的或哲学的代码组织建议。谢谢!!!

最佳答案

我知道如果我使用svn,我会将整个“~/code/”目录保存在一个大型存储库中,但我知道这不是使用git的好方法。
git劝阻人们不要使用单一的、单一的存储库的原因是您不能克隆存储库的子目录(就像使用svn一样)
假设您有git://blah/somecorp_code.git,它有数百万个修订版,并且是15gb。如果你只是想要一个子目录的代码,强硬-你要么得到所有15GB或什么都没有。
对于个人代码,这真的不是问题-我有一个“单片”Git存储库,大约20MB,我可以很高兴地将它克隆到所有我想使用它的机器上。
没有其他人使用它,没有其他人提交,而且我很少在分支方面做很多事情。它实际上只是一个漂亮的撤销系统,具有良好的同步和远程备份(私有github项目)
我的组织如下:
在存储库的根级别,我有一个code文件夹(以及一个sites文件夹,用于web开发人员的东西-这就是为什么存储库是20MB的原因)
在“代码”文件夹中,我有各种语言的文件夹(pythonrubyc等)
在每个语言目录中,我有两个文件夹,snippetsprojects。代码片段内部是一堆文件,项目内部是一系列文件夹。
这些项目是我写的一些随机的东西,但并不是很有效(玩具项目,“我想知道我是否可以…-项目等)
如果它是一个python文件,则进入code/python/snippets/,如果它是多个文件,则进入code/python/projects/{project name}
当我想公开发布一个项目(通常是在github上)时,我会创建一个新的存储库,将代码复制到这个库中并与github同步。
独立的“活动项目”存储库现在与整体式回购无关。我查看了子模块项目,但它不是用于此用途的-它旨在使克隆依赖项变得简单,而不是管理一系列无关的存储库
我有一个脚本,它使用github api自动在本地克隆我的所有项目,或者用git pull-它只是githubsync.py的自包含版本(我将github.py合并到同一个文件中)。可以找到here as gist/373731
最初,我使用githubsync.py将我的项目克隆到我的笔记本和台式机上,并定期在dropbox中运行它作为备份。

关于git - 用git组织大量个人脚本的好方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2657899/

10-09 02:02