标签: sparse-checkout

SVN是否支持合并到稀疏检出中?

我正在尝试将分支合并到稀疏的签出中(我在分支中触及的所有文件都包含在签出中)并且我收到以下错误:

不能完全无限地重新融入工作副本

这是否意味着我的意思?你必须有一个完全递归的结账才能合并到?

svn merge sparse-checkout

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

为什么在稀疏结帐后调用`git read-tree`

根据Subdirectory Checkouts with git sparse-checkoutgit read-tree -mu HEAD在已存在存储库的情况下配置稀疏结帐后调用一次,即:

# Enable sparse-checkout:
git config core.sparsecheckout true

# Configure sparse-checkout 
echo some/dir/ >> .git/info/sparse-checkout
echo another/sub/tree >> .git/info/sparse-checkout

# Update your working tree:
git read-tree -mu HEAD
Run Code Online (Sandbox Code Playgroud)
  • 你能read-tree更详细地解释一下这个步骤吗?
  • 它是如何工作的?
  • 到底是怎么回事?
  • 为什么一个人使用read-tree而不是,让我们说,checkout
  • 为什么要使用-mu(为什么这是一个合并,什么是合并)?

-m

    Perform a merge, not just a read. The command will refuse to run if
    your index file has unmerged entries, indicating that you have not
    finished previous merge …
Run Code Online (Sandbox Code Playgroud)

git sparse-checkout

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

如何从 git 中稀疏检出子目录而不检出其父目录?

我正在尝试从 git 存储库中稀疏签出一个子目录。

该存储库包含多个 WordPress 插件,我想一一查看它们。通过下面发布的解决方案,我遇到了这样的问题:每次我检查子目录的父目录时也会检查并且插件无法工作。

我尝试过这样的事情是否可以在不先检查整个存储库的情况下进行稀疏结帐?以及用于简单 Web 部署的 Git 稀疏结帐之类的东西。

我真的希望有人可以帮助我,因为我只是觉得我错过了一些信息。

谢谢。

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

6
推荐指数
0
解决办法
751
查看次数

具有稀疏结帐功能的 Git 提交/推送/拉取

我昨天开始使用 Git,在此之前我已经使用 SVN 多年了。让我向您解释一下我到底想实现什么目标:

我有一个针对不同项目的主要 git 存储库。像这样的东西:

  • main_repo/proj1
  • main_repo/proj2
  • main_repo/proj3

我无法为这些子项目创建单独的存储库。现在我(或其他用户)应该能够在这些独立项目中签出/提交/推送/拉取。

为此,我尝试使用以下命令进行稀疏结帐:

  1. mkdir proj1; cd proj1
  2. git init
  3. git remote add origin https://main_repo
  4. git config core.sparsecheckout true
  5. echo "proj1/" > .git/info/sparse-checkout
  6. git pull origin master

现在我需要的是获取 proj1 中同一当前目录中存在的所有文件。我得到的是这样的:

/proj1/proj1/files_and_dirs_in_proj1
Run Code Online (Sandbox Code Playgroud)

我需要的:

/proj1/files_and_dirs_in_proj1
Run Code Online (Sandbox Code Playgroud)

其次,checkout-dir 的行为不像 git repo。它不带有任何 .git 目录。所以我不明白如何在稀疏签出项目中进行提交/推/拉。

我希望我解释得很好。请建议。

git version-control sparse-checkout

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

浅层和稀疏的 GIT 存储库克隆

我有一个超过 1 GB 的浅克隆 git 存储库。我对所需的文件/目录使用稀疏结帐。

如何将存储库克隆减少为稀疏的签出文件/目录?

最初,我可以通过在克隆时禁用检出来将克隆存储库限制为仅稀疏检出。然后在进行初始结帐之前设置稀疏结帐。这将存储库限制为仅约 200 MB。更易于管理。但是,在将来的某个时刻更新远程分支信息会导致其余文件和目录包含在存储库克隆中。将存储库克隆大小发送回超过 1 GB,我不知道如何仅删除稀疏的签出文件和目录。

简而言之,我想要的是一个浅稀疏的存储库克隆。不仅仅是浅层回购克隆的稀疏签出。完整的存储库会浪费空间,并且某些任务的性能会受到影响。

希望有人能分享解决方案。谢谢。

git clone repository sparse-checkout

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

使用post-receive脚本在遥控器上进行Garse稀疏结账

我想弄清楚如何做以下(并弄清楚它是否可能).

我有一个面向各种东西的文件夹的本地git仓库,但我希望能够到我的网站使用Git部署到我的开发服务器,真的只有一个文件夹中的内容应该进入远程Web根目录(只是内容文件夹,而不是文件夹本身,这是艰难的一点).我有一个git push到dev服务器进入web可访问文件夹之外的一个裸仓库,然后我使用post-receive脚本将所有工作文件放入webroot.但是,这会复制所有文件夹,显然我只希望在操作完成后移动一个特定文件夹的内容.

做一些研究,看起来稀疏结账将是一个很好的选择.更新:我现在有工作,它只会复制一个特定的文件夹,但我仍然没有得到它忽略文件夹本身,只是拉内容.我认为这与我添加到.git/info/sparse-checkout的路径/通配符有关,但我不确定排除目录但不排除其内容的模式.

有没有办法做到这一点?我应该只使用post-receive脚本手动复制我想要的目录的内容,而不是尝试使用稀疏结账直接进行吗?

我很感激任何人愿意给予的帮助.谢谢!

git git-post-receive sparse-checkout

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

提示和技巧对于快速"结帐"(下载)Android源代码非常有用

查看和搜索Android源代码很简单.您只需访问AndroidXRef网站即可.

但是,如果您想构建并运行超级用户的最新版本,则必须首先下载整个Android源代码树.

想象一下,我想从源代码控制中获取Android"master"分支.

如果我按照Google的官方说明操作:

  • 手术肯定需要至少一个小时.可能需要半天或更长时间.
  • 它可能会吸收数十亿字节的数据.在我居住的地方,当用户在一个月内获取数十亿字节的数据时,ISP有时会收取"超额费用".我不喜欢支付费用或附加费.

简而言之,做一个普通的repo sync命令可能会很慢而浪费.我不需要整个Android开发历史; 我没有无限的磁盘空间.

如何更快地查看Android源代码?

  1. 我知道做一个"浅层克隆"会有所帮助.我怎样才能做到这一点?

  2. 拉克什其他地方写道,这repo sync -c会有所帮助.会吗?我已经阅读了该选项的文档-c.但我不太了解Git,知道该选项是否真的有用.这是一个相关的讨论.

  3. (可选:)我可以使用其他任何提示或技巧来加快结账操作吗?

  4. (可选:)最后,为了保存签出的代码,我需要多少磁盘空间?

PS我感谢durron597上周他在聊天中给我的建议.对这个问题所做的任何改进都归功于他/她.

git android diskspace sparse-checkout repo

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

如何通过稀疏结账进行 git-rebase?

我有一个启用了稀疏结帐的工作副本。我想做的git rebase -i。但是,如果我在变基时遇到冲突,所有从签出文件中排除的文件都标记为deletednot staged for commit

因此,当我确实解决实际冲突和所需文件时,由于未暂存的更改,git add我仍然无法完成。git rebase --continue我可以git checkout -f -- <excluded files>,但是很不方便。

git-rebase有没有更好的稀疏结账方法?

git git-rebase sparse-checkout

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

詹金斯稀疏结帐:只有目录的内容

我有一个仓库:hello.git。我能够执行稀疏结帐 sparse checkout path::/test/test1

现在我的工作区中有这个:

.../workspace/test/test1/content
Run Code Online (Sandbox Code Playgroud)

我想要以下内容:

.../workspace/content
Run Code Online (Sandbox Code Playgroud)

是否可以只签出您描述的路径的内容?

git sparse-checkout jenkins

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

git sparse-checkout ignore specific file type

I have a git repository with a bunch of large csv in them, which I don't want to clone, so I came across git sparse-checkout and this post: https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/

From this post I took following:

git clone --no-checkout https://github.com/john_doe/repo-with-big-csv.git
cd repo-with-big-csv
git sparse-checkout init --cone
Run Code Online (Sandbox Code Playgroud)

Then I edit the .git/info/sparse-checkout and add the following (adapted from example in page above):

/*
!**/*.csv
Run Code Online (Sandbox Code Playgroud)

但它似乎不能正常工作。有些文件夹克隆后git pull,有些则没有。我还注意到一个警告,当我这样做时,git sparse-checkout list我得到:

warning: unrecognized pattern: '**/*.csv'
warning: disabling cone pattern matching
/* …
Run Code Online (Sandbox Code Playgroud)

linux git sparse-checkout git-sparse-checkout

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