目录一、仓库创建与基本代码提交1.从本地开始追踪一个项目2.将本地所有文件添加到暂存区完成第一次提交3.在 GitHub 上创建一个空的远程仓库4.关联本地仓库和 GitHub 远程仓库5.将本地代码推送到 GitHub6.打开github 验证即可。二、从仓库开始追踪一个项目1.打开github仓库克隆仓库到本地2.本地修改文件并提交3.实践任务三、Git分支与版本控制共5点前2点1.分支管理基础1分支的概念与作用2分支的概念3核心作用4分支的核心操作2.合并分支解决冲突1什么时候会触发合并冲突2常见场景3创建测试目录和初始 Python 文件4编辑calculator文件见下文……一、仓库创建与基本代码提交1.从本地开始追踪一个项目进入本地项目文件夹初始化 Git 仓库(使用git bash)# 进入具体的项目文件夹 默认在c盘 cd D: cd learngit/ # 初始化git仓库 会生成一个.git隐藏文件夹 # 指定默认分支为 main和 GitHub 一致 git init --initial-branchmain执行后终端提示Initialized empty Git repository in ...说明初始化成功。2.将本地所有文件添加到暂存区完成第一次提交# 创建.gitignore 文件(用于忽略一些不需要追踪或上传的文件) touch .gitignore # 把文件夹里所有文件添加到 Git 暂存区. 代表所有文件 git add . # 提交暂存区的文件到本地仓库-m 后是提交说明必填写清楚这次提交的内容 git commit -m first commit ^_^如下3.在 GitHub 上创建一个空的远程仓库这一步是给你的项目在 GitHub 上 “建个空文件夹”用来接收本地代码打开 GitHub 官网点击右上角「」号 → 选择「New repository」新建仓库填写仓库信息- Repository name仓库名必须和本地项目文件夹名一致比如 my-project方便识别 - Description可选项目描述比如「我的第一个 Python 项目」 - Visibility选「Public」公开或「Private」私有免费版也支持- 重点不要勾选「Add a README file」「Add .gitignore」「Choose a license」这些会导致远程仓库非空后续推送冲突点击「Create repository」创建仓库。创建完成后GitHub 会跳转到仓库页面显示仓库的 SSH 地址比如gitgithub.com:你的用户名/my-project.git先复制这个地址后面要用。4.关联本地仓库和 GitHub 远程仓库回到终端执行命令把本地仓库和刚创建的 GitHub 仓库绑定# 添加远程仓库origin 是远程仓库的别名默认用 origin 即可不用改 # 替换成你刚复制的 GitHub SSH 地址 git remote add origin gitgithub.com:PLAYEROFMYLIFE/learngit.git # 验证是否关联成功可选 git remote -v5.将本地代码推送到 GitHub# 把本地 main 分支推送到 origin远程仓库的 main 分支 # -u 是绑定默认推送分支后续只需 git push 即可不用重复写分支名 git push --set-upstream origin main6.打开github 验证即可。二、从仓库开始追踪一个项目1.打开github仓库克隆仓库到本地# 改成具体名字 git clone gitgithub.com:PLAYEROFMYLIFE/learngit.git2.本地修改文件并提交# 查看修改状态 git status # 添加修改到暂存区 git add filename # 提交修改到本地仓库 git commit -m modify commit # 推送到远程仓库 git push origin main3.实践任务创建名为my-first-repo的个人仓库在本地仓库并添加一个名为hello-world.txt的新文件提交修改并推送到GitHub三、Git分支与版本控制共5点前2点1.分支管理基础1分支的概念与作用分支能让你在不影响主代码的前提下独立开发新功能、修复 Bug最后再把改动合并回去。GitHub Flow是一种轻量级的分支策略其核心是主分支main/master始终处于可部署状态所有新功能都在短期存在的功能分支上开发完成后通过Pull Request合并回主分支。2分支的概念假设你在写一篇论文对应「主分支 main」你想加一个新章节但又怕写砸了影响已完成的内容 → 复制一份论文在副本上写新章节这就是「新建分支 feature - 新章节」写新章节时发现原论文有个错别字 → 切回原论文改错别字「切回 main 分支修复 Bug」新章节写完且没问题 → 把副本的内容合并回原论文「合并 feature 分支到 main 分支」。Git 分支的本质就是对代码库的一份 “独立快照”分支之间互不干扰你可以在任意分支上修改代码不会影响其他分支。3核心作用$隔离开发避免代码混乱最核心作用这是分支最根本的价值主分支main/master存放稳定、可发布的代码比如上线的产品代码绝对不能直接在上面改代码功能分支feature/*开发新功能比如「feature - 支付功能」「feature - 用户登录」Bug 修复分支bugfix/*/hotfix/*修复线上 Bughotfix 是紧急修复直接基于 main 分支测试分支test/dev用于测试未上线的功能。就算你在 feature 分支把代码改烂了main 分支的稳定代码也毫发无损不会影响团队其他人。$支持多人并行开发团队协作时每个人都可以在自己的分支上开发你开发「支付功能」→ 分支feature-pay同事开发「评论功能」→ 分支feature-comment互不干扰开发完成后各自合并到主分支避免多人改同一文件导致的冲突。$常用分支介绍4分支的核心操作# 1. 查看所有分支* 表示当前所在分支 git branch # 2. 新建分支比如新建 feature-login 分支 git branch feature/login # 3. 切换到新建的分支 git checkout/switch feature-login # 简写新建切换一步到位最常用 git checkout -b feature-login or git switch -c feature-login # 4. 把 feature-login 分支合并到 main 分支先切回 main git checkout/switch main git merge feature-login # 5. 删除已合并的分支开发完成后清理 git branch -d feature-login2.合并分支解决冲突1什么时候会触发合并冲突冲突的核心原因是两个不同的分支修改了同一个文件的同一行 / 同一部分代码Git 不知道该保留哪一个版本只能暂停合并等你手动决策。2常见场景场景 1多人改同一文件你在feature-login分支改了user.js的第 10 行同事在main分支也改了user.js的第 10 行你把feature-login合并到main时触发冲突。场景 2自己在不同分支改同一文件你在feature-pay分支改了config.js的配置又在bugfix-pay分支改了config.js同一处配置合并两个分支时触发冲突。场景 3分支长期未合并主分支已更新你的feature分支基于 1 个月前的main分支创建期间main分支的核心文件已被多次修改你合并时大量文件因内容差异触发冲突。3创建测试目录和初始 Python 文件#先搭建一个干净的 Git 仓库创建基础 Python 文件 # 1. 创建测试文件夹并进入 mkdir git-conflict-demo cd git-conflict-demo # 2. 初始化 Git 仓库指定 main 分支 git init --initial-branchmain # 3. 创建一个 Python 文件功能计算两个数的和 touch calculator.py4编辑calculator文件# calculator.py - 初始版本 def add(a, b): 计算两个数的和 result a b return result # 测试代码 if __name__ __main__: print(计算结果, add(10, 20))见下文……