01
在 git-practice 里创建一条名为 idea 的分支,添加一个文件并提交,切回 main,检查那个文件是否还在。
第 1 级(热身)完成标准 · 本地勾选
本课目标:
- 解释什么是分支。
- 用
git branch创建分支,用git switch切换过去。- 把分支合并回主分支。
先修条件:第 1-3 课(提交、
git log、git restore) | 上一篇 << 03 | 下一篇 05 >>
想象你在写一篇博客文章。你想试一个新的开头段落,但不想冒险弄乱已经成立的草稿。你可以把整个文件夹复制一份,但那样你就得同步维护两个版本。
分支是同一个仓库内一条独立的开发线。你可以创建分支、在上面做提交,之后再决定要不要保留它 1。主分支通常叫 main 或 master。
HEAD 是一个指针,指向你当前所在的提交。切换分支时,HEAD 会移到那条分支的最新提交上。
git branch experiment 创建一条名为 experiment 的新分支。git switch experiment 让你移到那条分支上。git switch main 把你带回主分支。git merge experiment 把 experiment 上的改动并入 main。这张图展示一条分支从主线上岔开,然后独立向前推进。
留在 git-practice 里。
合并之后,main 上的 draft.txt 就包含了实验的那一行。
补全缺失的命令:创建分支、切换过去,再把它合并回来。
答案:
你现在会创建分支、切换过去,再把它合并回来。这是四项核心技能的最后一项。下节课,你将把初始化、提交、分支和恢复组合成一个小而完整的真实工作流。
Pro Git, Basic Branching and Merging — https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging ↩
# 1. Create and switch to a new branch
git branch experiment
git switch experiment
# 2. Edit a file and commit on the branch
echo "Experimental idea" >> draft.txt
git add draft.txt
git commit -m "Try experimental idea"
# 3. Switch back to main
git switch main
# 4. Confirm the experimental change is not here
cat draft.txt
# 5. Merge the experiment into main
git merge experiment
git _____ feature
git _____ feature
echo "New feature" > feature.txt
git add feature.txt
git commit -m "Add feature"
git _____ main
git _____ feature
git branch feature
git switch feature
git switch main
git merge feature