<一生一芯>寒假基地git操作题目

📝 题目

项目地址:git@github.com:Seeker0472/git-learn.git

题目背景:
你需要接手一个新功能开发。目前仓库里有一个 feature/go-lang 分支,里面是你之前写了一半的代码。你需要把它合并到 master 主分支,但主分支的代码似乎已经被别人更新过了。

前提条件:
请先 Fork 本仓库,或者直接 Clone:
git clone <你的GitHub仓库地址>

请进入仓库目录,按顺序完成以下任务:

任务 1:准备与检查 (Checkout & Diff)

  1. 当前你应该在 master 分支。请切换到 feature/go-lang 分支。
  2. Diff 操作:你发现在这个分支里,README.md 相比于 master 分支有一些不同。请使用命令比较 feature/go-langmasterREADME.md 文件差异。
  • 提示:使用 git diff master...feature/go-lang 或者直接比较文件。

任务 2:模拟失误与修正 (Amend)

  1. 查看日志 (git log),你会发现最近一次提交是 "Feature: choose Go"
  2. 你发现这次提交虽然添加了 todo.txt,但文件内容里少写了一句话。
  3. 操作要求
  • 修改 todo.txt,在里面增加一行:“- [ ] 编写接口文档”。
  • 将这个修改合并到上一次提交中 (Amend),不要产生新的 Commit ID。
  • 同时将提交信息修改为 "Plan: use Go lang & update todo"

任务 3:合并分支与解决冲突 (Merge & Conflict)

  1. 切回 master 分支。
  2. 操作要求:尝试将 feature/go-lang 分支合并到当前的 master 分支。
  3. 遭遇问题:Git 提示 README.md 发生自动合并失败。
  4. 解决冲突
  • 打开 README.md
  • 解决冲突内容,最终保留为:“核心功能开发 (Java 与 Go 混合架构)”。
  • 提交这次合并。

任务 4:清理战场

  1. 合并成功后,删除 feature/go-lang 分支(本地删除即可)。
  2. 使用 git log --graph --oneline 欣赏一下你的合并轨迹。

🔑 参考答案与解析

1. 准备与检查

1
2
3
4
5
git checkout feature/go-lang

# 比较差异 (写法有很多种,只要能看出区别即可)
git diff master README.md

2. 修正提交 (Amend)

1
2
3
4
5
6
7
8
9
# 修改文件
echo "- [ ] 编写接口文档" >> todo.txt

# 添加到暂存区
git add todo.txt

# 修正提交
git commit --amend -m "Plan: use Go lang & update todo"

3. 合并与冲突解决

1
2
3
4
5
6
7
8
9
10
git checkout master
git merge feature/go-lang
# 提示: CONFLICT (content): Merge conflict in README.md

# 手动修改 README.md 文件,删除 <<<< ==== >>>> 标记,修改内容。

# 标记为已解决并提交
git add README.md
git commit -m "Merge feature/go-lang: adopt hybrid architecture"

4. 清理

1
2
3
git branch -D feature/go-lang
git log --graph --oneline


<一生一芯>寒假基地git操作题目
https://20040702.xyz/2026/02/03/exam/
作者
Seeker
发布于
2026年2月3日
许可协议