Git 分支

sourcegit操作

常见流程

克隆仓库 初始化提交

新建分支 dev 新建分支feature

feature分支开发功能,模拟:添加feature1完成.txt 提交,注释,推送

合并到dev分支 先切换到dev分支,右键feature分支 合并选项选

合并dev分支到main分支 先切到main分支,右键dev分支,合并(新增一个提交)

错误及解决办法

错误分支开发并提交推送

假设我们开发都是feature 分支,现在直接在dev分支修改+提交了,现在要迁移到feature上

切到dev分支 添加文件 feature2完成.txt 提交并推送

解决

切到feature分支,右键刚刚dev分支上的提交,选择cherrypick,确认 效果如下

再切回dev分支 回滚此提交

回滚完成后发现目录中没有feature2完成.txt了 推送到远程

提交了错误的修改但是没推送

现状 在feature分支目录新建 :feature3错误.txt 提交但不推送

解决

feature分支上,右键错误提交,丢弃(撤回)

结果又回到了刚开始的情况

原理是:git reset –hard

git reset --hard HEAD~1

feature多次提交回退

假设我在feature分支上,一直开发,没有合并到dev,有多次提交,现在我想让feature分支回到某一次提交

提交历史(从上到下,新→旧):

commit E  (最新)
commit D
commit C  ← 回到这次
commit B
commit A

解决(没push)

右键点击该提交(c) → 选择 「重置」(或 Reset) 选择模式:

  • Soft:保留修改到暂存区(staged)
  • Mixed:保留修改到工作区(unstaged)⭐ 常用
  • Hard:彻底丢弃修改 ⚠️ 慎用

不保留任何东西:hard即可

git reset --hard C的commit-hash

解决(已push)

分别回滚e,d即可