由于之前都是使用svn进行代码控制,现在公司将版本控制全部切换至Git。不得已需要进行Git分支开发的学习,做一次学习记录。公司将项目Git仓库分为几个分支(master、develop、release),分别为主分支、开发分支、上线分支。
具体流程为:
git clone拉取主分支,也即最新的稳定版本代码。
补充:这一步我把它当作选择开发base,里面有个逻辑要知道。那就是工作区和暂存区是分支共享的,虽然我们可以通过git checkout 切换本地仓库的分支,但是工作区的代码base是不会变的。所以拉取主分支就代表着你选择了最近的一个原始稳定代码版本
git branch branchname:创建开发分支,一般与Git中开发分支同名
git branch --set-upstream-to=remote_branch_name local_branch_name:将本地开发分支与远程开发分支关联起来
git pull:将Git上面的开发分支代码迭代更新下来
到这一步就可以开始进行测试代码的研发。
.
.
.
开发测试结束之后需要将改动提交到master分支
git checkout local_master_branch_name:切换回本地主分支
git pull:拉取近期主分支更新
git merge local_branch_name:将本地开发分支内容合并到当前分支(master分支)
git push:将master分支推送到远端master分支
到这里整个Git分支开发及提交的流程就结束了,如果有的小伙伴Git分支更加复杂。请按着流程将相关分支细化到两个分支之间的提交,上述的流程是通用的。
总结两点使用Git中需要注意的知识点:
在Git仓库中所有分支公用一个工作区和暂存区,这个和笔者之前所理解的有偏差。checkout指令在于切换分支,将当前HEAD指针转向当前分支最近一次提交。随之带来的是工作区内容的更新,这个我们可以在ide中切换分支发现端倪
checkout命令虽然可以进行分支切换,从而改变工作区内容,但是有一个前提。前提是你的改动必须要提交到Git的本地版本库,这样切换的时候工作区内容才能随着变更
在使用中还发现ide会出现一个提示:There are outgoing commits
在terminal中使用git status会提示Your branch is ahead of ‘origin/master‘ by N commits,遇到这种问题有两种处理方式
git push remote_name branch_name:提交本地代码,做一次本地Git版本库与远端Git版本库同步的操作
git reset --hard remote_name:回滚本地分支到远端分支的最新版本,同样做了一次本地Git版本库与远端Git版本库同步的操作 参数-–hard将本地的HEAD指针指向了上一个版本,重置了暂存区的内容,而且还修改重置了本地工作区的内容;不加--hard时,单独将git仓库中的节点进行了回退,但是不修改本地工作区,一般用于增量代码提交
其实从上面的处理方式来看,出现此情况就是本地Git版本库与远端Git版本库出现了不一致,做一个版本库为准做同步即可文章来源:https://www.toymoban.com/news/detail-495581.html
end~文章来源地址https://www.toymoban.com/news/detail-495581.html
到了这里,关于项目Git分支开发及提交的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!