我有我的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是否能够很好地使用这种类型的存储库,因为它支持稀疏检出,但我能找到的每个示例都执行以下操作:
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命令会导致以下错误:
错误:稀疏结账不会在工作目录上留下任何条目
如何在不先检出所有文件的情况下进行稀疏结账?
据我所知,所有分布式版本控制系统都要求您克隆整个存储库.因此,将大量内容放入一个存储库并不明智(感谢您的回答).我知道这不是一个bug而是一个功能,但我想知道这是否是所有分布式版本控制系统的要求.
在分布式rcs中,文件(或一大块内容)的历史记录是有向无环图,那么为什么不能克隆这个单个DAG而不是存储库中所有图形的集合?也许我想念一些东西,但以下用例很难做到:
如果我从多个项目中重用其他人的代码部分,我无法保留其完整的历史记录.至少在git中我可以想到一个(相当复杂的)解决方法:
我不知道Mercurial或Bazaar是否也可以这样做,但至少它根本不容易.那么是否有任何支持部分检出/克隆的分布式rcs?它应该支持一个简单的命令,从一个存储库获取包含其历史记录的单个文件,并将其合并到另一个存储库 这样您就不需要考虑如何将内容构建到存储库和子模块中,但您可以根据需要快乐地拆分和合并存储库(极端情况是每个文件的一个存储库).
根据这个帖子,Git的sparse-checkout功能中的排除应该被实现.是吗?
假设我有以下结构:
papers/
papers/...
presentations/
presentations/heavy_presentation
presentations/...
Run Code Online (Sandbox Code Playgroud)
现在我想presentations/heavy_presentation从收银台中排除,而将其余部分留在收银台.我没有设法让这个运行.什么是正确的语法?
我想使用git的partialClone功能。在这个答案中,我看到了git clone --filter=tree:none <repo>命令。
但是当试图在 github 上执行时,提示warning: filtering not recognized by server, ignoring. 这没用。
我想知道是不是GitHub网站不支持,还是我的设置有问题。
问了GitHub的反馈人员,没有得到技术人员的答复。
我使用 Git 已经一年多了,现在我必须向我们组中的其他人解释它。这就是为什么我需要更多的背景知识。\n去年我浏览了 Git 书籍的大部分内容,最近我继续阅读第 10 章。在第10.6章中章我完全陷入困境:
\n\n\n\n\n让\xe2\x80\x99s 遵循 simplegit 库的 http-fetch 过程:
\n\nRun Code Online (Sandbox Code Playgroud)\n\n$ git clone http://server/simplegit-progit.git\n该命令所做的第一件事是下拉 info/refs 文件。\n 该文件是由 update-server-info 命令写入的,这就是为什么\n 您需要将其启用为接收后挂钩,以便HTTP\n 传输正常工作:
\n\nRun Code Online (Sandbox Code Playgroud)\n=> GET info/refs\nca82a6dff817ec66f44342007202690a93763949 refs/heads/master\n
我有一个小型测试仓库https://github.com/to_my/repo并且git clone运行良好。但
info/refs?我只找到了/.git/info/exclude之后clone...update-server-info命令?它是 git clone 的一部分吗?GET info/refs在 git bash 工作中获取该命令。抱歉,如果问题很愚蠢,但我只是不明白如何将文档中的这些部分放在一起。
\n只是想知道github服务器是否支持git wire protocol-v2?- https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html - https://github.com/git/git/blob/master/Documentation/technical/protocol-v2 .文本
我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库:拖放以及使用终端上的 Git 添加/提交/推送。在这两种情况下,我都收到了文件太大而无法显示的错误,但它只有 1.06 MB。我已经在 GitHub 和 SO 上搜索了文档。有什么想法吗?
我想克隆一个包含巨大 .exe 文件的 GitHub 存储库。(为什么?!)我对 .exe 文件的使用为零,它比其他所有文件的总和还要大得多。克隆文件时有没有办法忽略该文件?
我的猜测是,我会更幸运地要求作者制作一个无 exe 的分支!希望有一些不错的方法可以解决这个问题。
是否可以下载所有提交但不能下载文件本身?我想运行 bisect 但从构建服务器下载版本而不是自己编译。
我有一个用于稀疏结帐的子模块。没有稀疏结帐我会做
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。