如何使用git拉取特定文件夹,实现不同分支差异化内容拉取?
Git分支差异化拉取操作指南
以下操作默认你已完成本地仓库和远程仓库的绑定,操作前请先提交或暂存本地当前分支的未修改内容,避免内容丢失。
需求1:从remote/ABC分支拉取除P文件夹外的全部内容
- 第一步:拉取远程ABC分支的最新内容到本地缓存,不自动合并
git fetch origin ABC - 第二步:开启Git稀疏检出功能,配置排除P文件夹的规则
Git 2.25及以上版本可使用简化命令:
低版本Git手动写入规则:git config core.sparseCheckout true git sparse-checkout set /* !P/
上述规则中git config core.sparseCheckout true echo "/*" >> .git/info/sparse-checkout echo "!P/" >> .git/info/sparse-checkout/*代表匹配根目录下所有内容,!P/代表排除P文件夹及其下所有子内容 - 第三步:将远程ABC分支的内容合并到本地当前分支
git merge origin/ABC --allow-unrelated-histories - 后续不需要保留稀疏检出规则时,可执行
git config core.sparseCheckout false恢复正常检出模式。
需求2:从remote/XYZ分支仅拉取P文件夹的全部内容
- 第一步:拉取远程XYZ分支的最新内容到本地缓存
git fetch origin XYZ - 第二步:直接检出XYZ分支的P文件夹内容到本地当前分支
该命令会将XYZ分支上P文件夹的所有文件、子目录完整同步到本地当前分支的对应路径下。git checkout origin/XYZ -- P/ - 如果你需要保留本地P文件夹的现有内容,可在执行检出前先暂存本地内容:
git stash push P/,后续需要恢复时执行git stash pop合并差异即可。
注意:合并过程中如果出现路径冲突,按需编辑冲突文件解决后,执行
git add <冲突文件路径>和git commit提交合并结果即可。
内容的提问来源于stack exchange,提问作者Dr.PB
相关产品推荐
相关产品推荐

