对于零基础的同学,可以先看看这三篇文章:
本文开始,首先来看一次很顺利的提交
git add . # 注意有一个符号.
git commit -m "我干了些xxx" # 提交代码
git push # 推送到远程分支
但是在实际开发中,不可能会一帆风顺,总会遇到一些冲突,就像人生。
我们开发一般有开发环境dev,准生产环境staging,生产环境prod,对应的分支有dev,release,master。所有分支都以master分支为主,master必须保持纯净,不能被污染(即保证一些不必要的代码合到master中,比如还未上线的代码),否则会影响生产环境。
当接到需求时,先从master分支上拉取一条新的分支进行开发。开发完后会合到dev分支,一般会遇到以下几种需要回滚的场景:
场景一:
任务分支在本地开发了,只提交了代码,没有推送到远程分支。发现开发错了,需要回滚。
解决方法:
git logs查看提交日志,拿到需要回滚到的提交点2967b537e090b7621ddfa1843a0efd2543ceaa81
直接reset
git reset 2967b537e090b7621ddfa1843a0efd2543ceaa81
场景二:
任务分支在本地开发了,提交了代码,推送到了远程分支,没有合dev分支。发现开发错了,需要回滚。
解决方法:
git logs查看提交日志,拿到需要回滚到的提交点2967b537e090b7621ddfa1843a0efd2543ceaa81
直接reset
git reset 2967b537e090b7621ddfa1843a0efd2543ceaa81
且需要强推送到远程分支,否则远程分支和本地分支都会回滚失败
git push -f
场景三:
任务分支在本地开发了,提交了代码,推送到了远程分支,且合了dev分支。发现开发错了,需要回滚。
解决方法:
切换到dev分支
git checkout dev
git logs查看提交日志,拿到需要回滚到的merge节点2967b537e090b7621ddfa1843a0efd2543ceaa81
revert合并的节点
git revert -m 1 2967b537e090b7621ddfa1843a0efd2543ceaa81
推送到远程分支
git push
其他一些操作,比如创建分支,详细查看git提交记录等,这些直接在git仓库看就好了,清晰明了。再加上上面的这些操作,开发中的分支操作基本就没什么问题了,没有必要取学一些git的更深层次的操作,即便需要,百度就好了。