1、开发一个新功能流程:
(master线上分支,dev测试分支)
git clone //克隆远端仓库代码到本地
git checkout -b product //新建一个product 分支并且切换到product 分支
git add ./ 提交开发需求到暂存区域
git commit -m '开发商品模块'
git push origin pengyu
git co test //切换到test分支
git merge xxx //带你开发的业务代码合并到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代码合并
Git-小乌龟
5、项目开发时git分支情况
主干分支master:主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。
开发分支develop:主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
bug修理分支hotfix:要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
发布版本分支release:较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。
功能分支feature:为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。