我有我的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命令会导致以下错误:
错误:稀疏结账不会在工作目录上留下任何条目
如何在不先检出所有文件的情况下进行稀疏结账?
我有这样的目录结构:
../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.
我究竟做错了什么?