如何git-pull除一个文件夹以外的所有内容

20

有没有办法只git pull除了一个文件夹以外的全部内容?我不想创建.gitignore文件,因为其他人可能需要这个文件夹,但它对我来说太大了,现在无法使用。

谢谢!

2个回答

25

如果你只想得到 和 ,你可以:

mkdir <repo>
cd <repo>
git init
git remote add -f origin <url>
git config core.sparsecheckout true
echo <dir1>/ >> .git/info/sparse-checkout
echo <dir2>/ >> .git/info/sparse-checkout
echo <dir3>/ >> .git/info/sparse-checkout
git pull origin master

我在这里找到了一个很好的参考链接


3
参考链接已不再可用。 - Sawant
这里的<url>代表什么? - coretechie
2
在这种情况下,<url>将是存储库的URL。如果您在GitHub上托管,则会看到类似于https://github.com/organisation/repo-name.git的内容。 - Jalitha De Silva

11

我认为你无法进行部分拉取,但是你可以尝试并查看在拉取未完全检出的工作树时会发生什么。

Git1.7以来,你可以执行稀疏检出,就像这里所示,这意味着当填充其内容时,你的工作树将显式地排除该特定文件夹。

现在,如果那个目录很大,最好将其隔离到一个独立的 Git 存储库中,允许其他用户将其引用为子模块


很遗憾。感谢您的评论! - atp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接