git 提交错分支怎么办
工作一忙,难免会出错,比如写了半天代码,忽然发现分支不对,这时该怎么办?
1. 还没有提交代码
1.1 光顾着写代码了,忘了创建自己的分支
一时疏忽直接在 master 分支上写的代码,master 的代码可能还不是最新。这种情况下我们可以先把自己的代码暂存起来,然后把 master 分支更新到最新,再创建并切换到自己的分支,最后把暂存的代码恢复回来。具体步骤如下:
查看当前状态
1 | git status . |
修改已经 add 到暂存区
暂存代码
1 | git stash |
将当前存储到栈中,等下切完分支再取出来
把 master 分支更新到最新
1 | git fetch |
这一步是将 master 分支更新到最新的提交记录,然后在此基础上创建新的分支
创建并切换到自己的分支
直接创建新的分支并切换过去
1 | git checkout -b "分支名" |
如果不习惯这样操作,也可以分成两步操作
1 | git branch "分支名" |
把暂存的代码恢复回来
1 | git stash pop |
执行该命令将代码从栈里取出来
后续处理
代码已经恢复过来,可以直接 commit 提交了
1.2 已经创建了分支
这种情况下直接把分支切过去就可以了
1 | git checkout "分支名" |
2. 代码已经commit
不要紧,代码还在本地仓库,先把它撤回来
1 | git reset HEAD^ |
这样就把上一次的提交恢复为未提交的状态了,剩下的操作就可以参考第一种情况了
3. 代码已经push到远程仓库
什么?竟然提交到远程仓库了 Orz,master 分支应该有写保护才对。既然已经提交了,那么先看下有没有影响。
如果确认没什么影响,提交就提交吧。。
一般情况下不应该这样提交,可以把上一次的提交内容从 master 撤回。
不过这次不能像刚才那样直接撤销了,git 只能往上面加东西,不能删历史的提交(当然也可以操作历史提交log,不过不建议),因为别人有可能已经将你刚提交的代码同步到本地了。
别担心,我们可以把刚才提交的修改反向提交下,将上一次的修改 revert 下再提交上去。
1 | git revert HEAD |
执行这条命令后,本地会多一次 commit 记录,其内容是将上次的修改反向提交一次。比如上一次的提交是加了一行记录,那么这次就是将增加的那一行记录删除。
检查下看有没问题,没有问题就可以提交到远程了
1 | git push origin master |
这样修改内容已经撤销,不过提交记录还是在的。
一般不建议直接提交到 master 分支,所以每次代码push前尽量看下操作的分支对不对
- 2018-08-05
对于线性可分的数据集,感知机学习算法的原始形式是收敛的。也就是说,经过有限次的迭代,可以找到一个将数据集完全正确划分的分离超平面。