项目Git分支开发及提交

由于之前都是使用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中需要注意的知识点:

  1. 在Git仓库中所有分支公用一个工作区和暂存区,这个和笔者之前所理解的有偏差。checkout指令在于切换分支,将当前HEAD指针转向当前分支最近一次提交。随之带来的是工作区内容的更新,这个我们可以在ide中切换分支发现端倪

  1. 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版本库出现了不一致,做一个版本库为准做同步即可

end~

你可能感兴趣的:(Git,Java工作随笔,git)