我是与git“语言”相关的主题的初学者,对我来说并不总是立即理解(合并,“快进”,票务跟踪系统等......听起来很神秘)。
现在我的问题:
当我在一台机器上完成编码时,我提交并推送裸存储库。然后在另一台机器上,我从裸存储库中取出。每次切换时都会这样,所以不会发生冲突。
现在裸存储库和本地存储库(在裸存储库所在的同一台机器上;不在笔记本电脑上)都“太大了”,我需要释放旧提交。
What is the simplest and safest way to do this ?
另外,如果我想在两个存储库(本地和远程裸机)中删除一组连续提交的目录,怎么能安全轻松地完成?
git书并没有让我感到舒服。 THX
答案 0 :(得分:0)
您可以尝试的第一件事是使用git gc --prune --aggressive
打包存储库。在发出此操作之前,请确保您不需要任何最近的“放弃提交”。此操作清除存储库中的“垃圾”(临时提交,在rebase之前存在提交等),因此垃圾收集后git reflog
的输出是干净的。
如果.git /的大小对您来说仍然太大,您可以考虑简化历史记录(例如,将大量小变更合并为一个大变更),或者简单地切断旧的提交。但实际上应与您的同事和其他相关人员讨论。通常情况下,即使对于具有大量更改和大量代码库的大型项目也不需要。
您也可以考虑在笔记本上使用不完整的历史记录(使用git clone --depth ....
,请参阅手册页)但请记住,您不能在这样的“部分”存储库中进行新的提交,只能创建补丁并应用它们在一个完整的回购。