相关疑难解决方法(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 clone <path>
git config core.sparsecheckout true
echo <dir> > .git/info/sparse-checkout
git read-tree -m -u HEAD
Run Code Online (Sandbox Code Playgroud)

这个命令序列的问题是原始克隆也执行结帐.如果将-n添加到原始克隆命令,则read-tree命令会导致以下错误:

错误:稀疏结账不会在工作目录上留下任何条目

如何在不先检出所有文件的情况下进行稀疏结账?

git

159
推荐指数
12
解决办法
11万
查看次数

是否有支持部分结账/克隆的分布式版本控制系统?

据我所知,所有分布式版本控制系统都要求您克隆整个存储库.因此,将大量内容放入一个存储库并不明智(感谢您的回答).我知道这不是一个bug而是一个功能,但我想知道这是否是所有分布式版本控制系统的要求.

在分布式rcs中,文件(或一大块内容)的历史记录是有向无环图,那么为什么不能克隆这个单个DAG而不是存储库中所有图形的集合?也许我想念一些东西,但以下用例很难做到:

  • 克隆只是存储库的一部分
  • 合并两个存储库(保留它们的历史!)
  • 将一些文件从一个存储库复制到另一个存储库

如果我从多个项目中重用其他人的代码部分,我无法保留其完整的历史记录.至少在git中我可以想到一个(相当复杂的)解决方法:

  1. 克隆完整的存储库
  2. 删除我不感兴趣的所有内容
  3. 重写历史记录以删除主文件中没有的所有内容
  4. 将剩余的存储库合并到现有存储库中

我不知道Mercurial或Bazaar是否也可以这样做,但至少它根本不容易.那么是否有任何支持部分检出/克隆的分布式rcs?它应该支持一个简单的命令,从一个存储库获取包含其历史记录的单个文件,并将其合并到另一个存储库 这样您就不需要考虑如何将内容构建到存储库和子模块中,但您可以根据需要快乐地拆分和合并存储库(极端情况是每个文件的一个存储库).

git version-control mercurial dvcs bazaar

15
推荐指数
4
解决办法
3121
查看次数

Git稀疏结账,排除

根据这个帖子,Git的sparse-checkout功能中的排除应该被实现.是吗?

假设我有以下结构:

papers/
papers/...
presentations/
presentations/heavy_presentation
presentations/...
Run Code Online (Sandbox Code Playgroud)

现在我想presentations/heavy_presentation从收银台中排除,而将其余部分留在收银台.我没有设法让这个运行.什么是正确的语法?

git sparse-checkout

12
推荐指数
4
解决办法
7858
查看次数

GitHub 和 GitLab 是否支持 git clone 的 --filter 参数?

我想使用git的partialClone功能。在这个答案中,我看到了git clone --filter=tree:none <repo>命令。

但是当试图在 github 上执行时,提示warning: filtering not recognized by server, ignoring. 这没用。

我想知道是不是GitHub网站不支持,还是我的设置有问题。

问了GitHub的反馈人员,没有得到技术人员的答复。

git github jgit gitlab rugged

8
推荐指数
1
解决办法
1278
查看次数

Git 的传输协议是如何工作的

我使用 Git 已经一年多了,现在我必须向我们组中的其他人解释它。这就是为什么我需要更多的背景知识。\n去年我浏览了 Git 书籍的大部分内容,最近我继续阅读第 10 章。在第10.6章中章我完全陷入困境:

\n\n
\n

让\xe2\x80\x99s 遵循 simplegit 库的 http-fetch 过程:

\n\n
$ git clone http://server/simplegit-progit.git\n
Run Code Online (Sandbox Code Playgroud)\n\n

该命令所做的第一件事是下拉 info/refs 文件。\n 该文件是由 update-server-info 命令写入的,这就是为什么\n 您需要将其启用为接收后挂钩,以便HTTP\n 传输正常工作:

\n\n
=> GET info/refs\nca82a6dff817ec66f44342007202690a93763949     refs/heads/master\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

我有一个小型测试仓库https://github.com/to_my/repo并且git clone运行良好。但

\n\n
    \n
  • 文件夹在哪里info/refs?我只找到了/.git/info/exclude之后clone...
  • \n
  • 我应该如何使用该update-server-info命令?它是 git clone 的一部分吗?
  • \n
  • 我完全迷失了“...这就是为什么你需要将其启用为接收后挂钩”,尽管我了解挂钩(我认为)并使用预提交挂钩来自动增加包版本。
  • \n
  • 我无法GET info/refs在 git bash 工作中获取该命令。
  • \n
\n\n

抱歉,如果问题很愚蠢,但我只是不明白如何将文档中的这些部分放在一起。

\n

git

6
推荐指数
2
解决办法
3850
查看次数


错误:GitHub 目前无法显示这么大的文件 - 但该文件只有 1.06 MB

我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库:拖放以及使用终端上的 Git 添加/提交/推送。在这两种情况下,我都收到了文件太大而无法显示的错误,但它只有 1.06 MB。我已经在 GitHub 和 SO 上搜索了文档。有什么想法吗?

在此输入图像描述

git terminal github

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

git clone,忽略文件

我想克隆一个包含巨大 .exe 文件的 GitHub 存储库。(为什么?!)我对 .exe 文件的使用为零,它比其他所有文件的总和还要大得多。克隆文件时有没有办法忽略该文件?

我的猜测是,我会更幸运地要求作者制作一个无 exe 的分支!希望有一些不错的方法可以解决这个问题。

git github

4
推荐指数
1
解决办法
2083
查看次数

如何在不下载文件对象的情况下进行 git clone

是否可以下载所有提交但不能下载文件本身?我想运行 bisect 但从构建服务器下载版本而不是自己编译。

git

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

Git 子模块准备稀疏结帐

我有一个用于稀疏结帐的子模块。没有稀疏结帐我会做

git submodule update --init <path/to/submodule>
Run Code Online (Sandbox Code Playgroud)

但是如何将子模块存储库初始化为空而不获取它(或获取它,但不检查它),所以我可以调用

cd <path/to/submodule>
git config core.sparseCheckout true
cd <../../..>
echo <subdir-to-get> .git/modules/<path/to/submodule>/info/sparse-checkout
Run Code Online (Sandbox Code Playgroud)

很遗憾

git submodule init <path/to/submodule>
Run Code Online (Sandbox Code Playgroud)

不会在.git/modules/<path/to/submodule>和 文件中创建存储库<path/to/submodule>/.git

git git-submodules

2
推荐指数
1
解决办法
1012
查看次数