Git的稀疏结账简单的Web部署(Git sparse checkout for simple we

2019-08-19 17:40发布

我有这样的目录结构:

../dir1/dev/project1/...
           /project2/...
           /project3/...
       /production/

我有DEV(及其所有子目录)签入的Git(和github上)。 一切工作正常。

我想用github上通过检查(或拉,或其他)到我的生产目录仅部署项目2。 (具体而言,我想通过标签来检查。)因此,这将导致../dir1/production/project2

我不是一个git的专家,但已经在网上看了一堆,似乎一个“疏结账”是我后。 我试过的指示各种组合在这里和这里和这里 。

基本上,我所做的:

mkdir <repo> && cd <repo>
git init
git remote add –f <name> <url>
git config core.sparsecheckout true
echo /project2/ >> .git/info/sparse-checkout

当我做git pull <remote> TAGNAME我得到fatal: The remote end hung up unexpectedly

当我做git checkout TAGNAME我得到error: Sparse checkout leaves no entry on working directory

我究竟做错了什么?

Answer 1:

啊哈 - 解决它。 问题是,这样做初始化它创建一个空仓库,所以我不能检出的。 (我不知道为什么拉不工作。)

相反,做一个克隆,但使用-n参数为“无校验”。 这种克隆Git仓库,但离开你的工作树空。 然后设置稀疏结账。 然后结帐只是你想要什么。

要白衣:

cd <parentdir>
git clone -n <url>
cd <repo_dir>
git remote add –f <name> <url>
git config core.sparsecheckout true
echo /<foldername>/ >> .git/info/sparse-checkout
git checkout <tagname>


文章来源: Git sparse checkout for simple web deployment