相关疑难解决方法(0)

使用Git将我的最后一次X提交压缩在一起

如何使用Git将我最后的X提交压缩成一个提交?

git squash git-squash

3294
推荐指数
38
解决办法
147万
查看次数

使用Git管理大型二进制文件

我正在寻找如何处理我的源代码(Web应用程序)所依赖的大型二进制文件的意见.我们目前正在讨论几种选择:

  1. 手动复制二进制文件.
    • 亲:不确定.
    • Contra:我强烈反对这一点,因为它增加了在设置新站点/迁移旧站点时出错的可能性.建立另一个障碍.
  2. Git管理所有这些.
    • 专业:删除'忘记'复制重要文件的可能性
    • 反对:膨胀存储库并降低管理代码库和检出,克隆等的灵活性将需要相当长的时间.
  3. 单独的存储库.
    • Pro:检查/克隆源代码的速度很快,图像可以在自己的存储库中正确存档.
    • Contra:删除了在项目中拥有唯一的 Git存储库的简单性.它肯定会介绍一些我没有想过的其他事情.

您对此有何体验/想法?

另外:有没有人有多个Git存储库的经验并在一个项目中管理它们?

这些文件是程序的图像,该程序生成包含这些文件的PDF.文件不会经常更改(如年份),但它们与程序非常相关.没有文件,程序将无法运行.

git version-control binaryfiles large-files

517
推荐指数
10
解决办法
18万
查看次数

如何将所有git提交压缩成一个?

你如何将整个存储库压缩到第一次提交?

我可以重新设置第一次提交,但这会让我有2次提交.有没有办法在第一个之前引用提交?

git rebase git-rebase squash git-rewrite-history

427
推荐指数
17
解决办法
20万
查看次数

减少git存储库大小

我试图寻找一个关于减少回购规模的好教程,但没有找到.我如何减少我的repo大小...它大约10 MB,但事情是Heroku只允许50 MB,我不在附近完成开发我的应用程序.

我已经将通常的嫌疑人(日志,供应商,文档等)添加到.gitignore.虽然我最近只添加了.gitignore.

有什么建议?

git git-clean

267
推荐指数
3
解决办法
12万
查看次数

结合Git存储库的前两个提交?

假设您有一个包含三个提交A,BC的历史记录:

A-B-C
Run Code Online (Sandbox Code Playgroud)

我想将两个提交AB组合到一个提交AB:

AB-C
Run Code Online (Sandbox Code Playgroud)

我试过了

git rebase -i A
Run Code Online (Sandbox Code Playgroud)

这打开了我的编辑器,其中包含以下内容:

pick e97a17b B
pick asd314f C
Run Code Online (Sandbox Code Playgroud)

我改成这个

squash e97a17b B
pick asd314f C
Run Code Online (Sandbox Code Playgroud)

然后Git 1.6.0.4说:

Cannot 'squash' without a previous commit
Run Code Online (Sandbox Code Playgroud)

有办法还是不可能?

git rebase git-rebase git-rewrite-history

194
推荐指数
5
解决办法
4万
查看次数

在GitHub上完全从Git repo和remote远程删除文件

我不小心添加了一个图像文件夹并提交.然后,我又做了一次提交.然后我git rm -f ./images再次使用并提交了这些文件.

现在,我在那个分支(master)中做了很多提交.在我的HEAD中,我没有该./static/images文件夹.

因此,我的回购规模增加了很多.如何完全删除这些斑点?我想从我的远程GitHub仓库中删除它.

git git-remote git-filter-branch git-rm

77
推荐指数
2
解决办法
7万
查看次数

用于重要文件备份的git - 为什么不呢?

说我想用Git备份我的电脑.

我不关心完整的系统备份.如果我的硬盘坏了,我不介意重新安装.我只想备份我的数据文件,这些文件都在一个分区上.

为了备份Git,我可以在该分区上创建一个repo,在一个单独的驱动器或系统上克隆它(裸),并定期提交并推送以备份我的文件.

如果有的话,以这种方式使用Git备份的缺点是什么?

git backup

6
推荐指数
1
解决办法
3751
查看次数

从 git 中删除旧的二进制版本并减少 git 存储库的大小

因此,目前我遇到了一个似乎非常复杂的问题,我需要一些帮助来解决如何修复它,而无法将二进制文件移动到 CDN/保管箱等。在评估此问题时,请注意删除图像/pdf 等并放入遗憾的是,不能将它们放在保管箱或其他外部存储中。

所以当前的问题是我有几百个存储库,每个存储库都有几千次提交,每个存储库通常有 3 个分支。在我的一个测试存储库中,如果我对存储库执行 du -sh,其大小约为 13GB。其中工作目录大小约为 800mb。因此,到目前为止,我为减小尺寸所做的尝试如下:

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch path/to/largest/files.pdf" HEAD
rm -rf .git/refs/original/ && git reflog expire --all &&  git gc --aggressive --prune
git gc --prune=now --aggressive
git repack -a -d --depth=250 --window=250
Run Code Online (Sandbox Code Playgroud)

经过上述所有测试后,du -sh 上的存储库目录仍然显示其大小为 13GB。所以我的下一个想法是删除所有二进制文件历史记录(jpg / pdf / png 等),但仅保留二进制文件的最新版本。然而我不确定如何实现这一点,我可以做一个 for i in find -name "*.pdf"; 例如,执行 git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $i" HEAD 完成,但我不确定这是否是解决问题的最佳方法,因为它可能会需要很长时间才能完成所有不同的资产类型。

这里的主要目标是通过仅在历史记录中保留二进制文件的 1 个修订版来减小大小,以便包文件的大小更小,历史记录中所有以前删除的二进制文件也可以被删除,我对此 100% 满意,但也不确定如何以自动化方式做到这一点。

任何帮助,将不胜感激。

git

6
推荐指数
1
解决办法
1762
查看次数

如何减少具有大量提交历史的 .git 文件夹的大小?

我们在一个小组中工作,每天大量提交数据,因为 .git 文件夹的大小变得非常大。并且在我们的系统上执行pull命令时,由于 .git 文件夹很大,需要很多时间。我们如何清理或减少这个 git repo 的大小?

git github

5
推荐指数
1
解决办法
4847
查看次数