Ros*_*s R 7 git web-deployment
我有这样的目录结构:
../dir1/dev/project1/...
/project2/...
/project3/...
/production/
Run Code Online (Sandbox Code Playgroud)
我将dev(及其所有子目录)检入git(和github).一切都运作良好.
我想使用github通过签出(或拉动或其他)到我的生产目录中来仅部署project2.(具体来说,我想通过标签检查.)所以这会导致../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
Run Code Online (Sandbox Code Playgroud)
我什么时候git pull <remote> TAGNAME得到fatal: The remote end hung up unexpectedly.
我什么时候git checkout TAGNAME得到error: Sparse checkout leaves no entry on working directory.
我究竟做错了什么?
啊哈 - 解决了.问题是,通过执行init,它创建了一个空的存储库,因此我无法进行结帐.(我不知道为什么拉不起作用.)
相反,做一个克隆,但使用-n参数"no checkout".这会克隆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>
Run Code Online (Sandbox Code Playgroud)