第七章-Git
1、工作中 git 开发使用流程(命令版描述)
开发一个新功能流程: (master 线上分支,dev 测试分支)
git clone 注释 1
git checkout -b product 新建一个 product 分支并且切换到 product 分支
git add ./ 提交开发需求到暂存区域
git commit -m '开发商品模块'
git push origin pengyu
git co test //切换到 test 分支
git merge pengyu //带你开发的业务代码合并到 test 分支
git push origin test //带你开发的业务代码推送到远端的 test 分支
2、Reset 与 Rebase,Pull 与 Fetch 的区别
git reset 不修改 commit 相关的东西,只会去修改.git 目录下的东西。
git rebase 会试图修改你已经 commit 的东西,比如覆盖 commit 的历史等,但是不能使用 rebase 来修改已经 push 过的内容,容易出现兼容性问题。rebase 还可以来解决内容的冲突,解决两个人修改了同一份内容,然后失败的问题。
git pull pull=fetch+merge,
使用 git fetch 是取回远端更新,不会对本地执行 merge 操作,不会去动你的本地的内容。 pull 会更新你本地代码到服务器上对应分支的最新版本
3、git merge 和 git rebase 的区别
git merge 把本地代码和已经取得的远程仓库代码合并。
git rebase 是复位基底的意思,git merge 会生成一个新的节点,之前的提交会分开显示,而 rebase 操作不会生成新的操作,将两个分支融合成一个线性的提交。
4、git 如何解决代码冲突
第一种:
git stash
git pull
git stash pop
这个操作就是把自己修改的代码隐藏,然后把远程仓库的代码拉下来,然后把自己隐藏的修改的代码释放出来,让 gie 自动合并。
如果要代码库的文件完全覆盖本地版本。
git reset –hard
git pull
第二种:通过开发工具 idea 进行 merge 代码合并
5、项目开发时 git 分支情况
主干分支 master:主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。
开发分支 develop:主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
bug 修理分支 hotfix:要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
发布版本分支 release:较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。
功能分支 feature:为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。
[注释 1] 克隆远端仓库代码到本地