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"仓库中创建一个功能分支
  • 在该分支上添加一个功能文件并提交
  • 尝试合并到主分支并制造一个冲突
  • 解决冲突并再次合并
  • 使用规范的提交信息格式进行一次提交
相关推荐
AI+程序员在路上1 小时前
VS Code 完全使用指南:下载、安装、核心功能与 内置AI 编程助手实战
开发语言·人工智能·windows·开源
别来无恙blwy4 小时前
windows MongoDB升级-自动升级脚本-自动检测升级到任意版本
数据库·windows·mongodb
豆豆5 小时前
网站管理系统大全:精选开源与商业CMS系统全面指南
github·cms·建站系统·建站·建站平台·内容管理系统·网站管理系统
恼书:-(空寄5 小时前
ES性能调优实战指南
elasticsearch
小黑要努力6 小时前
智能音箱遇到的问题(一)
linux·运维·git
RePeaT6 小时前
【git】指令场景实战:单分支与多分支协作流程
git
折哥的程序人生 · 物流技术专研6 小时前
效率翻倍:出版社多库区复合型 ABC 仓储拣选体系全解(含直发/越库/箱式立库/托盘立库)
大数据
Elastic 中国社区官方博客7 小时前
Elasticsearch:智能搜索 - AI builder 及 skills
大数据·人工智能·elasticsearch·搜索引擎·ai·信息可视化·全文检索
用户79457223954137 小时前
一句话生成短视频:当 AI Skills 真正打通"创作流水线"
人工智能·github·ai编程
豆浆煮粉7 小时前
Ubuntu虚拟机对USB设备无响应且Windows主机设备管理器显示警告
windows·ubuntu