上一篇文章:手把手教学,如何解决git冲突?,提到了主分支master或者main的改动只能通过合并代码引入。你不应该手动修改master分支中的代码。在很多正规的项目中,主分支是不允许直接推送代码的。但在现实中,这种情况经常发生。上次合并代码后,我的分支还在主分支。过了十几天半个月,突然发现了一个bug,或者想到了需要修改的地方。于是打开VSCode或者IDE,开始改代码。改了几十行代码,几个文件,突然发现,哎呀,我改的是主分支上的文件。很多同学遇到这种问题后,都是这样解决的:先gitstatus看看有哪些文件被修改了,然后去文件夹里把这些文件copy出来。使用gitcheckout--filename重置所有修改,重新创建一个新的分支,覆盖之前复制的文件……这样,虽然确实可以解决问题,但是过程非常繁琐。那么,遇到这种情况我们应该怎么办呢?其实很简单:gitadd将所有文件添加到暂存区gitcommit将所有文件提交到变更记录执行命令gitbranch-Mdev将当前master分支重命名为dev执行命令gitcheckout-bmain重新创建一个主分支。(注意新Github项目的主分支是main,旧项目是master)执行命令gitreset--hardHEAD^,从主分支移除最新的commit。至此,主分支的修改已经被擦除。可以回到dev分支继续未完成的开发。如果你还不知道如何正确使用Git,可以点击阅读原文,使用微软提供的交互环境进行信息和操作,按照提示一步步完成操作,你就会学到混蛋。本文转载自微信公众号“闻所未闻的密码”,可通过以下二维码关注。转载本文请联系Code公众号。
