相关疑难解决方法(0)

如何克隆仅Git存储库的子目录?

我有我的Git存储库,它在根目录下有两个子目录:

/finisht
/static
Run Code Online (Sandbox Code Playgroud)

当这是在SVN,/finisht在一个地方签出,而/static在其他地方查出来,像这样:

svn co svn+ssh://admin@domain.com/home/admin/repos/finisht/static static
Run Code Online (Sandbox Code Playgroud)

有没有办法用Git做到这一点?

git repository git-clone subdirectory sparse-checkout

1298
推荐指数
18
解决办法
73万
查看次数

删除不再位于远程存储库中的本地git标记

我们在git中使用标签作为部署过程的一部分.有时,我们希望通过从远程存储库中删除它们来清理这些标记.

这非常简单.一个用户在一组命令中删除本地标签和远程标签.我们有一个结合了两个步骤的小shell脚本.

第二个(第3个,第4个......)用户现在拥有不再反映在遥控器上的本地标签.

我正在寻找一个类似于git remote prune origin清除本地跟踪已删除远程分支的分支的命令.

或者,可以使用列出远程标记的简单命令来比较通过返回的本地标记git tag -l.

git git-tag

432
推荐指数
13
解决办法
15万
查看次数

只克隆一个分支

我想知道如何克隆一个分支而不是克隆整个Git存储库.

git github

383
推荐指数
4
解决办法
34万
查看次数

从存储库中检索单个文件

从远程git存储库获取单个文件内容的最有效机制(关于传输的数据和使用的磁盘空间)是什么?

到目前为止,我已经设法提出:

git clone --no-checkout --depth 1 git@github.com:foo/bar.git && cd bar && git show HEAD:path/to/file.txt
Run Code Online (Sandbox Code Playgroud)

这仍然有点矫枉过正.

如何从回购中获取多个文件?

git git-checkout sparse-checkout git-sparse-checkout

206
推荐指数
11
解决办法
21万
查看次数

有没有办法让git pull自动更新子模块?

有没有办法自动拥有git submodule update(或最好随时git submodule update --init调用git pull

寻找一个git配置设置,或者一个git别名来帮助解决这个问题.

git git-submodules

174
推荐指数
7
解决办法
6万
查看次数

如何从我的git仓库中删除未引用的blob

我有一个GitHub仓库,有两个分支 - 主和发布.

发布分支包含二进制分发文件,这些文件导致了非常大的repo大小(> 250MB),所以我决定清理一下.

首先,我删除了远程发布分支 git push origin :release

然后我删除了本地发布分支.首先我试过git branch -d release,但是git说"错误:分支'释放'不是你当前HEAD的祖先." 这是真的,所以我git branch -D release强迫它被删除.

但是我在本地和GitHub上的存储库大小仍然很大.所以然后我浏览了通常的git命令列表,比如git gc --prune=today --aggressive没有运气.

按照Charles Bailey在SO 1029969的指示,我得到了最大blob的SHA1列表.然后我使用来自SO 460331的脚本 来找到blob ......并且五个最大的不存在,虽然找到了较小的blob,所以我知道脚本正在工作.

我认为这些博客是发布分支中的二进制文件,它们在删除该分支后不知何故.什么是摆脱它们的正确方法?

git

113
推荐指数
6
解决办法
7万
查看次数

git对二进制文件好吗?

git对二进制文件好吗?

如果我修改了很多未压缩的文件,并且许多压缩文件从未(或几乎从未)被修改过,那么git会处理得好吗?例如,如果我插入或删除中间并在末尾附近插入数据,它会注意到它与文本一样吗?

如果git对二进制文件不好,我可以考虑使用什么工具?

git

87
推荐指数
6
解决办法
7万
查看次数

用大文件Git

情况

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

可能的解决方案

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

    发现这个不起作用.

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

问题

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

git large-files gitlab

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

不同的版本控制系统如何处理二进制文件?

我听说过一些声称SVN比Git/Mercurial更好地处理二进制文件.这是真的,如果是这样,为什么呢?据我所知,没有版本控制系统(VCS)可以在相同二进制资源的两个版本之间区分和合并更改.

那么,并非所有VCS都不善于处理二进制文件吗?我不太了解特定VCS实现背后的技术细节,所以可能它们有一些优点和缺点.

svn git version-control mercurial

31
推荐指数
3
解决办法
1万
查看次数

二进制文件的Git或Subversion

我们需要在一个包含100多个"项目"的版本控制存储库中存储二进制文件(主要是MS Word文档,范围从几KB到几MB).目前我们使用Visual Source Safe但存在一些问题,数据库有时会崩溃并且访问速度很慢.

我们正在考虑转向Git或Subversion,我们想知道哪一个是处理二进制文件的更好选择.

svn git version-control binaryfiles

25
推荐指数
3
解决办法
2万
查看次数