18. [Git]误在Master分支开发并commit无法push

有时候为了查看master分支某一位置的代码,可是一不留神思绪来了直接就开始改代码,却忘了自己身处master分支,一顿操作改好代码就直接commit了,可是当push的时候就弹出告警:master分支为被保护分支,我们无法push

此后你会发现,如果你不去解决,甚至你尝试解决,你还是会一直看到一个待push的提醒。

如何将那个提醒取消呢?

下面说一说解决的思路:

我们通过git clone将整个远程仓库clone到本地,当我们开发时。总是会切换到一个现有的分支或者是一个重新在已有的分支上创建一个分支出来,当我们在IDEA中选择new branch from selected时,我们创建了一个新的分支,并且该新的分支如果不做改动是与刚才选择的分支保持一模一样,当我们做了改动之后,经过commit和push之后将该分支提交了远程,那么远程就存在一个同名的和本地分支保持映射的一个分支,实际上,本地的所有分支都来自远程,并且存在一个分支与远程一一对应。同样道理,如果我们在master分支上做了改动,由于master分支被保护,我们仅仅能够commit,也就是暂存在了本地,无法push到远程,如果想要取消这个待push的提醒,可以将master所trace(跟踪)的分支切换到另一个分支,这样在你的本地,master不再指向远程的master,而是指向了另一个分支,此时,你可以将本地master分支更换一个名字(比如叫master_bk),而后,再从远程的master分支拉取一个分支名为master到本地,此时这个master又重新指向远程的master,此时,删除原来被更名的master_bk,待push的提醒就没了。