ML-For-Beginners 拉取最新课程内容时出现 Git 合并冲突怎么处理?
【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners
你在本地克隆了 ML-For-Beginners 课程仓库(克隆方法见 README.md 的 Getting Started 部分),在本地修改过课程 notebook、assignment 等文件之后,执行git pull origin main同步最新课程内容时拉不下来,Git 报告合并冲突(merge conflicts)。项目 TROUBLESHOOTING.md 的 "Environment and Configuration" 章节下的 "Git Issues" 小节正是针对这个现象("Can't pull latest changes - merge conflicts")给出的处理流程:先把本地改动暂存(stash),拉取远端最新内容,再把本地改动恢复回来;恢复后仍有冲突的文件,用文档给出的两条git checkout命令选择保留哪一方版本。
什么时候会走到这个流程
该流程的起点是git stash(暂存本地改动),所以它适用的前提是:本地仓库中存在尚未同步的本地改动,同时需要拉取远端main分支的最新内容。在这个仓库里,"拉取最新课程内容"是一个常规操作——比如 TROUBLESHOOTING.md 的 "Missing Data Files" 一节在处理数据集文件缺失时,给出的第 3 步就是确保已拉取最新变更:
git pull origin main多数数据集本来就包含在仓库里,个别课程需要自行下载数据(该节文档的说明),所以拉取失败时先按下面流程恢复拉取能力,再回头看数据文件问题。
本节流程只覆盖"拉取最新内容时冲突"这一种场景;文档中其他冲突(如 npm 端口被占用)属于不同小节,不在本文范围内。
主流程:暂存、拉取、恢复
按 TROUBLESHOOTING.md "Git Issues" 小节给出的命令依次执行:
# Stash your changes git stash # Pull latest git pull origin main # Reapply your changes git stash popgit stash:把本地改动暂存起来,让工作区回到干净状态,这样git pull origin main才能把远端main的最新课程内容完整拉下来。git pull origin main:文档中两处("Missing Data Files" 与 "Git Issues")使用的都是这条命令,远端分支为main。git stash pop:把之前暂存的本地改动重新应用回工作区。
文档把冲突解决命令紧接在git stash pop之后("If conflicts, resolve manually or:"),也就是说:冲突主要发生在恢复本地改动、它与远端最新内容发生重叠的时候。
pop 之后仍有冲突的文件怎么处理
对恢复后仍冲突的文件,文档给出两条路:手动解决(resolve manually),或者按文件选择保留哪一方的版本:
git checkout --theirs path/to/file # Take remote version git checkout --ours path/to/file # Keep your version上面的path/to/file是占位符,需要替换为实际发生冲突的文件路径,例如你本地修改过的那个课程 notebook 或 Markdown 文件的路径。两条命令的取舍依据文档注释:
--theirs:取远端版本,即采用课程仓库最新拉下来的内容;--ours:保留你自己的版本,即本地修改过的内容。
如果冲突的文件不止一个,对每个文件各执行一次,按需选择保留哪一方。
拉取完成后的核对
文档没有给出额外的状态检查命令,这里只列出文档明确提供的核对线索:
- 问题被解决的标志是原本失败的操作能完成——即
git pull origin main成功拉取,不再出现 "Can't pull latest changes" 的冲突。 - 如果你这次拉取的目的本来就是找回缺失的数据文件,按 "Missing Data Files" 一节的顺序核对:确认该数据本应包含在仓库中(多数数据集已包含在仓库内);若课程要求自行下载,检查对应课程的 README。
仍无法解决时
TROUBLESHOOTING.md 末尾的 "Still Having Issues?" 给出的求助路径是:先搜索项目已有的 issues,再查看 Discord Discussions;仍无解则提交一个新 issue,并按文档要求附上以下信息:
- 操作系统及版本;
- Python/R 版本;
- 完整错误信息(full traceback);
- 复现问题的步骤;
- 已经尝试过的手段。
本文内容全部对应 TROUBLESHOOTING.md 的 "Git Issues" 与 "Missing Data Files" 两小节;如果之后要往仓库提交自己的改动(开分支、提交、推送),那是 AGENTS.md "Common Commands Reference" 中 Git workflow 部分描述的贡献者流程,属于另一套任务,此处不展开。
【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考