git如何把代码提交到一个新创建的分支上

在开发中,我们常常需要加一些临时的代码来测试某些功能,这些代码通常不适合提交到主分支上,这时候我们需要建立一个新的分支,并提交这些代码。


1. 操作逻辑

  • 创建分支:新分支会基于当前分支的 最新提交(HEAD 指向的提交)创建。
  • 切换分支:Git 会将工作区(代码文件)和暂存区(已 git add 但未 git commit 的内容)直接带到新分支,但不会触发任何提交操作。

示例场景:

# 当前在 main 分支,修改了代码但未提交
git checkout -b new-feature  # 创建并切换到 new-feature 分支
  • 结果
    • main 分支:无新提交,未提交的修改仍留在工作区。
    • new-feature 分支:未提交的修改会显示在工作区(与 main 分支完全相同)。

2. 关键规则

  • 未提交的修改:属于工作区,不属于任何分支,切换分支时会一起带到新分支。
  • 已提交的代码:属于原分支的历史记录,新分支会继承这些提交。

示意图:

原分支(main)
|
* 已提交的代码(HEAD)
|
└── 工作区未提交的修改(跟随用户切换分支)

3. 如何处理未提交的修改?

  • 方案 1:提交后再切换
    git add .
    git commit -m "临时提交未完成的修改"
    git checkout -b new-feature
    
  • 方案 2:储藏修改(stash)
    git stash          # 暂存未提交的修改
    git checkout -b new-feature
    git stash pop      # 在新分支恢复修改
    
  • 方案 3:直接带到新分支(默认行为)
    git checkout -b new-feature  # 未提交的修改会保留在工作区
    

4. 注意事项

  • 冲突风险:如果原分支和新分支的代码存在冲突,切换分支时可能会失败(需手动解决冲突)。
  • 代码安全:未提交的修改在切换分支时不会丢失,但建议及时提交或储藏,避免误操作覆盖。

总结

  • 创建并切换分支不会提交代码到原分支
  • 未提交的修改会保留在工作区,跟随用户切换到新分支。
  • 若需“冻结”当前状态,可以使用 git stash 或临时提交。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容