GIT 拉取特定的目录,以及操作点评

https://zhuanlan.zhihu.com/p/310701669

仓库只有一个的情况下,只想拉取某个目录文件;其他文件没用到的会很浪费时间;

关键:git的sparse checkout模式

大致步骤:

1,本地新建文件夹或者执行命令

mkdir newproject && cd newproject

点评:建个文件,不需要命令的,win系统,直接新建目录就行

2,目录初始化

git init

点评:初始化的时候,是个空仓库,为空是正常的。

3,设置远程仓库地址

git remote add -f origin <origin_url>

点评: 同一项目,不同分支的url是一样的,后续,再切换分支。按道理,这时候,并没有拉取文件,但是,运行命令的时候,出现了下面的更新项

要下载更多东西的样子,好恶心。
项目很大,我知道,我想只拉取某个目录,结果,还是要加载很久。
出力不讨好,运行一半,我就直接停止了命令,命令行此时报错为

error: Could not fetch origin

4,设置sparse checkout模式,允许克隆子目录

git config core.sparsecheckout true

5,设置指定拉取的目录( 是通配符,!是反选;例如 clients/ 表示clients目录下所有)

echo clients/html >> .git/info/sparse-checkout

点评:上述命令中,可变的部分,只有clients/html。改成项目中,想要拉取的目录。

6,拉取

 git pull origin master

第6步如果遇到 fatal: Couldn't find remote ref master;

表示主线名称不是master,可以通过分支命令查看git branch -a

git branch -a
remotes/origin/main

根据上面提示,主线名称是main,则执行

 git pull origin main

还是直接用git网页端的zip下载搞定,但后续的问题是,如果push到指定的文件夹呢?

posted @   风意不止  阅读(1399)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示