1.指定的目录
先说一下使用场景,想从远程仓库中只拉取指定代码,不想获取整体的更新。 使用之前一定要commit一下本地代码。如果你关联了两个仓库,那么最好也把最新代码push到经常push的那个仓库里。(commit和push的操作是让你更加安全)因为Sparse Checkout这个操作真的有坑
1.初始化:
$ git init <project>
$ cd <project>
2.连接远端库:
$ git remote add origin https://*****.git // 你的git仓库地址
3.启用"Sparse Checkout"功能:
$ git config core.sparsecheckout true
4.添加想要clone的目录:
$ echo "path1/" >> .git/info/sparse-checkout
$ echo "path2/" >> .git/info/sparse-checkout
注意:子目录路径不包含clone的一级文件夹名称:
例如库路径是:
https://A/B/C/example.git
我们想clone example下的D/E/F目录,则:
echo “D/E/F” >> .git/info/sparse-checkout
5.pull代码:
$ git pull origin [branch]
前两行的操作应该是没用的,我想你在准备这个操作前,前两行你早就完成了。剩余的代码输入完后,并没有得到想要的只更新了 ”fileName"文件夹,而是把所有远程仓库的所有代码都更新了。能merge的还会自动给你merge,还会有conflict的。我一看和我想要的效果不一样。以为用 git reset --hard HEAD@{n} //根据commit回退代码。可以改回去,结果跟我说有一个文件没有update。后来看了别的办法也没解决(有解决的欢迎评论)。最后只有重新得到commit或者push的代码了
2.指定分支
git clone -b branch git@xxxxx/xxx.git