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"仓库中创建一个功能分支
  • 在该分支上添加一个功能文件并提交
  • 尝试合并到主分支并制造一个冲突
  • 解决冲突并再次合并
  • 使用规范的提交信息格式进行一次提交
相关推荐
新诺韦尔API2 小时前
身份证验证接口详细开发对接指南
大数据·python·api
珠海西格2 小时前
红区之困:分布式光伏爆发背后的“逆流危机”
大数据·运维·服务器·数据库·人工智能·分布式
yhdata2 小时前
医院信息娱乐系统赛道提速:当前规模132.3亿元,未来六年将以11.5%增速稳步扩容至281.5亿元
大数据·人工智能·娱乐
1张驰咨询12 小时前
汽车制造的现实选择:用六西格玛培训应对“负毛利”时代的挑战
大数据·人工智能·汽车·制造·六西格玛培训·六西格玛黑带培训·六西格玛培训公司
Dola_Zou2 小时前
深度解析高价值软件的安全免疫系统与授权演进
大数据·人工智能·安全·软件工程·软件加密
阿杰真不会敲代码2 小时前
Elasticsearch 入门到实战:安装 + CRUD + 查询
java·大数据·elasticsearch·搜索引擎
yhdata2 小时前
一体式AR眼镜市场稳步上扬:现规模119.2亿元,未来六年年均增速20.4%锁定441.1亿元
大数据·网络·人工智能·ar
海棠AI实验室2 小时前
OpenClaw 落地指南:在 Windows 本地零基础部署 OpenClaw 与自动化强化学习 (RL) 系统
运维·windows·自动化·openclaw
lucky-billy2 小时前
Windows 上本地部署 OpenClaw 保姆级教程
windows·openclaw