1

我们有很多小的通常是其中一个项目,它们都作为应用程序放入 Django 项目中,我想从代码中删除它们以保持干净,也不必担心一年对我们现有的代码库进行升级时的项目。

我是否应该将 a git rm src/clients/my_project/(并删除所有引用)与git commit -m "Removed my_project". 如果它只是另一个提交消息并且会消失在噪音中,那么整个项目已被删除似乎不太明显。

在少数情况下,我们希望恢复旧代码库,因为一些客户要求重新运行他们的项目,或者我们正在对已经存在的东西进行调整,但在大多数情况下肯定是这样。我如何使有一个可以恢复的旧项目变得合理和明显?

我想一种解决方案是更改为每个项目有一个 git repo,但是这些项目非常小,并且似乎不保证设置 github、jenkins 和部署服务器等的开销。

有没有人在他们自己的组织中解决了这个问题?

4

2 回答 2

3

每个项目使用单独的 repo 可能是个好主意。您可以获得更清晰的历史记录,您不必担心为不相关的项目检查大量代码,而且它通常更灵活。

也就是说,为了解决您在噪音中丢失项目的直接问题,您可以为每次删除创建一个标签。

git commit -m 'Removed my_project'
git tag -a deletes/my_project -m 'Deletion of my_project'

这样你就可以在你的标签列表中看到所有的项目删除,如果你需要引用项目,你可以很容易地再次找到它们(只要记住查看父级deletes/my_project以实际获取该项目的代码)。

于 2012-09-11T11:07:01.110 回答
0

“小型一次性项目”听起来像是主题分支的完美候选者。特别是如果他们与您的主要项目共享大量通用代码。分支是 git 真正擅长的。

分支小项目意味着您可以使用 git 的全部功能来管理您的项目。您可以轻松地将主要项目中的相关错误修复合并或变基到您的小项目中。您可以轻松区分项目。您可以从类似项目中分支出一个子项目。如果一个项目被证明是有用的,你可以将它合并回你的主分支。

此外,它使独立部署项目变得容易。只需将不同的项目检查到不同的服务器(或同一服务器上的不同虚拟主机)。

当一个项目变得足够大以保证它自己的 repo 时,您可以通过再次克隆它轻松地将该分支转换为它自己的 repo。如果你不想要旧的历史,你可以通过深度 1 的克隆或压缩它的历史来摆脱它。

于 2012-09-11T11:21:14.420 回答