相关疑难解决方法(0)

用大文件Git

情况

我有两台服务器,生产和开发.在生产服务器上,有两个应用程序和多个(6)数据库(MySQL),我需要将它们分发给开发人员进行测试.所有源代码都存储在开发服务器上的GitLab中,开发人员只能使用此服务器,并且无权访问生产服务器.当我们发布一个应用程序时,master会登录到生产环境并从Git中提取新版本.数据库很大(每个超过500M并且数不胜数),我需要尽可能简单地将它们分发给开发人员进行测试.

可能的解决方案

  • 在将数据库(每个数据库)转储到单个文件的备份脚本之后,执行将每个数据库推送到其自己的分支的脚本.如果开发人员想要更新他的本地副本,则会拉出其中一个分支.

    发现这个不起作用.

  • 生产服务器上的Cron每天都会保存二进制日志,并将它们推送到该数据库的分支中.因此,在分支中,有每日更改的文件,开发人员会提取他没有的文件.当前的SQL转储将以另一种方式发送给开发人员.当存储库的大小变得太大时,我们将向开发人员发送完全转储并刷新存储库中的所有数据并从头开始.

问题

  • 解决方案可行吗?
  • 如果git正在推送/拉出存储库,它是上传/下载整个文件,还是只更改它们(即添加新行或编辑当前的行)?
  • Git可以管理如此大的文件吗?没有.
  • 如何设置存储库中保留的修订数量?与新解决方案无关.
  • 有没有更好的解决方案?我不想强迫开发人员通过FTP或类似的东西下载这么大的文件.

git large-files gitlab

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

使用Git将夜间版本分发给工作室

精简版

需要每天早上向70多人分发每晚构建,想要使用git来平衡传输,并且在我开始设计系统之前想知道是否存在提示,陷阱或缺陷.

长版

每天早上我们都需要将我们的夜间版本分发给70多人(艺术家,测试人员,程序员,制作人员等)的工作室.到目前为止,我们已将构建复制到服务器并编写了一个同步程序来获取它(使用下面的Robocopy); 即使设置了镜像,传输速度也会慢得多,因为在高峰时间需要一个小时或更长时间才能同步(非高峰时间约为15分钟),这表明它是硬件I/O瓶颈.

我有一个很棒的(虽然绝对不是原创)想法是在整个工作室分配负载.在调查使用臭名昭着的bit-torrent协议编写客户端之后,我想到了另一个想法,我可以使用git作为设计,它可以让我们分发构建和修订管理,同时减少服务器的额外好处.

问题

  1. 你如何开始使用git?我有像PerforceSVN这样的集中式源控制系统的经验.阅读文档,似乎您需要做的就是运行git init path\\to\folder,然后在另一台机器上运行git clone url

  2. 我在哪里获得url上述git clone命令?我可以定义吗?我发现有一个网址奇怪的概念,因为git没有中央服务器 - 或者是这样吗?例如类似于一个比特洪流的跟踪器?

  3. 识别构建,使用变更列表编号或标签的更好选择是什么?

  4. 是否可以限制存储的修订数量?这将是有用的,因为除了夜间构建之外,我们还有一些我们想要分发的CI构建,但是无限数量修订无处不在.在Perforce中,您可以通过设置属性来限制修订.

c# git continuous-integration

9
推荐指数
1
解决办法
1249
查看次数

将某些文件(图像)添加到 git 而不进行版本控制

我现在在存储图像方面遇到了困境:

  • 现在我的项目刚刚开始。
  • 在最初的几次开发迭代中,我看到我的项目的 gui 会有很多更改请求,尤其是图像和图标。

我只想在请求非常少的情况下检查它们。有了这个,我不喜欢我的 git 存储库被图像弄得乱七八糟,因为我有几兆字节大小的图像。

目前,我正在做的是将除二进制文件、目标文件和图像之外的几乎所有内容都包含到我的 git 存储库中。
然后每周,我都会对所有内容进行完整的 zip 备份。

我想问的是,是否有办法将文件放入 git 而不进行版本控制?

我知道它违背了 git 的目的,但是可以通过这种方式控制 git repo 的大小。

为了显示:

  • 我有pic1.jpg。我想把它放到 git 中。
  • 如果我将替换pic1.jpg为另一个图像但具有相同的文件名,它只会覆盖pic1.jpg而不进行版本备份。
    这样 git repo 的大小就会显着增加。

这听起来可能很危险,但是从我从 git 中学到的是,如果您将文件提交到其中,它将永远留在那里。

我想到了另一个解决方案:项目将被完全压缩并放置在一个保管箱中,项目的新开发人员将从保管箱中获取它,提取,执行 git fetch,然后合并。

我希望有人可以分享他们在这方面的经验/专业知识。

git

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

网站图像文件应该包含在GIT存储库中吗?

我有一个网站文件/文件夹结构模板,可以开始使用git.它.gitignoreimages文件夹中包含一个空文件,这引出了我的两部分问题:

1.)这个空.gitignore文件是否会忽略文件夹的所有图像images,还是放在那里以允许在将任何图像放入内部之前将空文件夹添加到存储库中?

2.)网站图像是否应包含在git存储库中?对我来说,图像文件的编辑和更改与其他文件一样,并且随着时间的推移跟踪所述更改将是有益的.

什么是最佳做法?你做了什么,为什么?

git image gitignore

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