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即可