摄影:产品经理
产品经理出去喝酒了
在以前的文章:手把手教学,如何解决 git 冲突?中,我提到,主分支 master 或者 main 中的修改,只能通过 merge 合并代码引入。绝对不应该手动在主分支里面修改代码。在很多正规项目里面,主分支是不允许直接 push 代码的。
但在现实中,经常出现这样的情况。上一次合并完成代码以后,我的分支还停留在主分支。过了十天半个月以后,突然发现了一个 bug,或者想到了一个需要修改的地方。于是打开 VSCode 或者 IDE 就开始改代码。改了几十行代码,好几个文件以后,突然发现,糟糕,我在主分支上面改了文件。
有不少同学遇到这种问题以后,是这样解决的:
- 先
git status
看看修改了哪些文件,去文件夹里面把这些文件复制出来。 - 使用
git checkout -- 文件名
把所有修改全部重置 - 重新创建一个新的分支
- 把之前复制出来的文件覆盖回去
- ……
这样做,虽然说确实可以解决问题,但过程非常繁琐。
那么,遇到这种情况怎么办呢?实际上非常简单:
git add
把所有文件加入暂存区git commit
把所有文件提交到变更记录里面- 执行命令
git branch -M dev
把当前的主分支改名为dev
- 执行命令
git checkout -b main
重新创建一个主分支。(注意 Github 新项目的主分支是 main,老项目是 master) - 执行命令
git reset --hard HEAD^
移除主分支最新的提交
至此,主分支的修改已经被抹除。你可以重新转到 dev 分支继续刚才未完成的开发了。
如果大家还不会正确使用 Git,可以点击阅读原文,使用微软提供的交互式环境来信息和操作,根据提示一步一步完成操作,也就学会了 Git。