github基础入门(3):版本控制(提交,分支删除,提交规范)

见上文......

目录

见上文......

三、Git分支与版本控制(共5点,后3点)

1.分支管理基础

2.合并分支解决冲突

3.提交

1)提交代码到main分支

[2)创建 feature 分支并修改代码](#2)创建 feature 分支并修改代码)

3)修改caculator.py

[4)提交feature 分支的修改](#4)提交feature 分支的修改)

5)切换回main分支,

6)修改calculator.py

[7)提交 main 分支的修改](#7)提交 main 分支的修改)

[8)合并分支, 触发冲突](#8)合并分支, 触发冲突)

9)冲突提示

[10)查看冲突后的 Python 文件](#10)查看冲突后的 Python 文件)

11)手动解决冲突

[12)在github网站上Pull & Request 可视化操作更建议方便。](#12)在github网站上Pull & Request 可视化操作更建议方便。)

4.分支删除

1)本地分支删除

2)远程分支删除

3)误删分支的恢复方法

5.提交规范与最佳实践

1)提交信息格式规范

2)提交信息模板配置

3)提交历史的管理与重写

4)实践任务


三、Git分支与版本控制(共5点,后3点)

1.分支管理基础

2.合并分支解决冲突

3.提交

1)提交代码到main分支

复制代码
# 1. 添加文件到暂存区
git add calculator.py

# 2. 提交代码(第一次提交)
git commit -m "初始化:添加加法函数"

2)创建 feature 分支并修改代码

复制代码
    git checkout -b feature-add-tax

3)修改caculator.py

复制代码
# calculator.py - feature 分支版本
def add(a, b):
    """计算两个数的和(含10%税费)"""
    result = (a + b) * 1.1  # 核心修改:加了税费计算
    return result

# 测试代码
if __name__ == "__main__":
    print("计算结果(含税费):", add(10, 20))

4)提交feature 分支的修改

复制代码
git add calculator.py
git commit -m "feature分支:加法函数增加税费计算"

5)切换回main分支,

复制代码
git checkout/switch main

6)修改calculator.py

复制代码
#同样修改 add 函数的核心计算行(和 feature 分支改了同一行):
# calculator.py - main 分支版本
def add(a, b):
    """计算两个数的和(四舍五入)"""
    result = round(a + b, 2)  # 核心修改:四舍五入,和 feature 分支冲突
    return result

# 测试代码
if __name__ == "__main__":
    print("计算结果(四舍五入):", add(10, 20))

7)提交 main 分支的修改

复制代码
git add calculator.py

git commit -m "main分支:加法函数增加四舍五入"

8)合并分支, 触发冲突

复制代码
#现在尝试把 feature 分支合并到 main 分支,因为两个分支修改了 calculator.py 的同一行(result #= ...),会直接触发冲突:

git merge feature-add-tax

9)冲突提示

复制代码
# 看到类似这样的提示,说明冲突触发

Auto-merging calculator.py

CONFLICT (content): Merge conflict in calculator.py

Automatic merge failed; fix conflicts and then commit the result.

10)查看冲突后的 Python 文件

复制代码
#打开 calculator.py,会看到 Git 插入的冲突标记,核心冲突部分如下:
<<<<<<< HEAD
# calculator.py - main 分支版本
def add(a, b):
    """计算两个数的和(四舍五入)"""
    result = round(a + b, 2)  # 核心修改:四舍五入,和 feature 分支冲突
=======
# calculator.py - feature 分支版本
def add(a, b):
    """计算两个数的和(含10%税费)"""
    result = (a + b) * 1.1  # 核心修改:加了税费计算
>>>>>>> feature-add-tax
    return result

# 测试代码
if __name__ == "__main__":
<<<<<<< HEAD
    print("计算结果(四舍五入):", add(10, 20))
=======
    print("计算结果(含税费):", add(10, 20))
>>>>>>> feature-add-tax

11)手动解决冲突

复制代码
#解决思路(融合需求:既加税费,又四舍五入)

#修改冲突文件,删除标记,合并逻辑:

# calculator.py - 解决冲突后的版本

def add(a, b):
   """计算两个数的和(含10%税费+四舍五入)"""
   result = round((a + b) * 1.1, 2)  # 融合两个分支的逻辑
   return result

# 测试代码

if __name__ == "__main__":
   print("计算结果(含税费+四舍五入):", add(10, 20))  # 预期输出:33.0

12)在github网站上Pull & Request 可视化操作更建议方便。

需要现在本地进行先执行merge一下。

复制代码
# 确保在main分支
git switch main
# 合并
git merge feature-add-tax

然后可以看见github上有pr,然后创建一个pr请求,手动解决冲突然后合并分支删除分支,在本地执行回到原先状态

复制代码
git merge --abort
# 然后将github上的代码pull下来同步
git pull

4.分支删除

1)本地分支删除

查看本地分支

复制代码
git branch

删除已合并分支

复制代码
# 删除单个分支(-d 是 --delete,只删已合并的分支)
git branch -d feature-login

# 强制删除未合并的分支(谨慎!-D 是 --delete --force,会丢失代码)
git branch -D feature-unfinished

批量删除本地已合并的分支

复制代码
# 先切到 main 分支,再删除所有已合并到 main 的本地分支
git checkout main
git branch --merged main | grep -v "main" | xargs git branch -d

git branch --merged main:列出所有已合并到 main 的分支;
grep -v "main":排除 main 分支本身;
xargs git branch -d:批量删除这些分支。

2)远程分支删除

  • 终端删除远程分支

    删除远程的 feature-login 分支(origin 是远程仓库别名)

    git push origin --delete feature-login

  • GitHub 网页删除远程分支

打开仓库页面 → 点击顶部「Code」→ 右侧「Branches」;

找到要删除的分支 → 点击右侧「⋯」→ 选择「Delete branch」;

确认删除即可(如果分支被保护,会提示无法删除)。

3)误删分支的恢复方法

如果不小心删了分支,只要该分支有提交记录 / 远程备份,就能恢复:

  • 恢复本地已删除的分支

    第一步:找到删除分支的最后一次提交记录(用 reflog 查看操作历史)

    git reflog

    第二步:从提交记录恢复分支(替换成你的提交哈希值,比如 abc123)

    git checkout -b feature-login abc123

  • 恢复远程已删除的分支

    先在本地恢复分支

    #重新推送到远程即可:
    git push origin feature-login。

5.提交规范与最佳实践

1)提交信息格式规范

  • 主题行限制50字符
  • 使用祈使句("Fix"而非"Fixed")
  • 提交类型标识(feat:功能,fix:修复,docs:文档等)

2)提交信息模板配置

  • 在仓库创建时勾选"Add a README file"
  • 使用.github/COMMIT_TEMPLATE.md文件设置模板

3)提交历史的管理与重写

  • 重做最近一次提交,刚提交完,发现提交信息写错(比如类型填错、主题超长); 漏加文件(比如忘了 git add 某个文件)。

    git commit --amend

  • 重置最近一次提交,撤销最近一次提交,但保留工作区 / 暂存区的代码(代码不会丢);适合:提交后发现代码有问题,想修改后重新提交。

    git reset --soft HEAD^

  • 不同reset对比

4)实践任务

  • 在"my-first-repo"仓库中创建一个功能分支
  • 在该分支上添加一个功能文件并提交
  • 尝试合并到主分支并制造一个冲突
  • 解决冲突并再次合并
  • 使用规范的提交信息格式进行一次提交
相关推荐
东方-教育技术博主9 小时前
自动编码在教育场景中的重要性:一项基于多源证据的深度综述
大数据·人工智能
liuqs3329 小时前
机器人产业加速发展,制造业正在迎来新的自动化探索
大数据·人工智能
腾讯云大数据9 小时前
DataBuddy数据语义驱动的企业Agent Runtime实践
大数据·人工智能·腾讯云·agent
cvcode_study9 小时前
Ollama+ComfyUI 多模态
大数据·人工智能·python
wangruofeng9 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
YCOSA202510 小时前
雨晨 Windows 11 IoT 企业版 LTSC 26H2 轻装 26300.9278 自用版
windows·物联网
wangruofeng10 小时前
AI 画架构图总差点意思,archify 给它加了一条验收流水线
架构·github·aigc
四方云10 小时前
把电话能力无缝嵌入企业自有CRM
大数据·人工智能
STQY燊桐启元(深圳)电子科技10 小时前
医疗精密电源散热方案:相变陶瓷片保障医疗设备长效稳定低干扰
大数据·网络·人工智能
陕西企来客11 小时前
2026年8月买门窗主要看什么参数?选购攻略
大数据·买门窗主要看什么参数