RETURN_TO_GRID
方法 2:已经提交到
场景 1:正在开发,但不想污染
场景 2:不小心提交到
GIT2025-04-084 MIN READ
GIT分支选择
如果你想将当前的提交(commit)切换到一个新的分支,而不是直接提交到 main/master 分支,可以按照以下步骤操作:
方法 1:当前有未提交的更改,想存到新分支
步骤
- 暂存当前更改(如果没有暂存):
text
git add . - 创建新分支并切换过去:
text
git checkout -b 新分支名 - 提交更改到新分支:
(或者用text
git commit -m "feat: 提交信息"git cz交互式提交)
方法 2:已经提交到 main,想移到新分支
如果你不小心提交到了 main 分支,但想把它移到新分支:
步骤
-
创建新分支(保留当前提交):
textgit branch 新分支名 -
切换回
main分支:textgit checkout main -
撤销
main上的提交(可选,如果不想保留):textgit reset --hard HEAD~1(
HEAD~1表示回退到上一个提交) -
切换到新分支继续工作:
textgit checkout 新分支名
方法 3:还未提交,但想直接存到新分支
如果你正在开发,但还没 git commit,想直接存到新分支:
步骤
- 暂存更改:
text
git add . - 创建并切换到新分支:
text
git checkout -b 新分支名 - 提交到新分支:
text
git commit -m "feat: 提交信息"
示例场景
场景 1:正在开发,但不想污染 main 分支
text
# 1. 开发了一些代码,但还没提交
git add .
# 2. 创建并切换到新分支
git checkout -b feature/login
# 3. 提交到新分支
git commit -m "feat(login): 添加用户登录功能"
场景 2:不小心提交到 main,想移到新分支
text
# 1. 已经提交到 main
git log # 查看提交记录
# 2. 创建新分支(保留提交)
git branch feature/login
# 3. 回退 main 分支
git checkout main
git reset --hard HEAD~1 # 彻底删除提交(谨慎使用!)
# 4. 切换到新分支
git checkout feature/login
关键命令总结
DATA_TABLE
| 操作 | 命令 |
|---|---|
| 创建并切换分支 | git checkout -b 新分支名 |
| 仅创建分支 | git branch 新分支名 |
| 切换分支 | git checkout 分支名 |
撤销 main 的提交 | git reset --hard HEAD~1 |
| 提交到新分支 | git commit -m "提交信息" |
注意事项
git reset --hard会彻底删除提交,确保你已经备份或推送到新分支。- 如果代码已经推送到远程
main,需要用git push -f强制覆盖(不推荐,除非你知道后果)。 - 推荐工作流:
- 永远在 新分支 开发,而不是直接改
main。 - 用
git checkout -b 新分支名开始新功能。
- 永远在 新分支 开发,而不是直接改
这样,你的 main 分支就能保持干净,所有新功能都在独立分支开发! 🚀
END_OF_FILESLUG: GIT/GIT分支选择
# COMMENTS