git使用与工作流程
1.将本地代码更新为远端的最新代码这分两种情况,本地代码不存在,用git clone将代码拉过来;本地已存在,使用git pull更新本地代码a.本地不存在项目代码,首先将代码由仓库clone到本地:git clone https://github.com/mnmlist/Algorithms.gitb.本地已存在代码,直接git pull一下更新下本地代码为最新,当然这是全部分支都更
1.将本地代码更新为远端的最新代码
这分两种情况,本地代码不存在,用git clone将代码拉过来;本地已存在,使用git pull更新本地代码
a.本地不存在项目代码,首先将代码由仓库clone到本地:git clone https://github.com/mnmlist/Algorithms.git
b.本地已存在代码,直接git pull一下更新下本地代码为最新,当然这是全部分支都更新,也可以使用git pull origin
branch_name来仅更新某个分支的代码最最新
2.对代码进行修改
分支介绍
修改前一定先确定在自己要在哪个分支上做修改,否则修改过后才发现自己在master或develop上就麻烦了,还需要取消
自己的修改。
a.master分支:一般master分支是线上代码分支,生产用的代码都在该分支上,容不得任何差错;
b.test分支:test是qa分支,给测试人员用的,一般也不允许有任何问题;
c.develop分支:develop分支是给开发测试人员测试自己代码是否合格的分支,一般是在自己的分支上测试没问题后才
可以合并到develop分支上;
d.任务号分支:自己的开发分支,一般对应某个具体的任务,开发完成后就可以将其删除;
如何将分支切换到自己的分支上呢?
a.已经有自己的分支号,直接git checkout branch_name即可以切换到自己的分支上;
b没有自己的分支号,一般需要自己手动创建,git branch branch_name,然后在git checkout branch_name切换到该分
支上,也可以直接使用git checkout -b branch_name完成上述两个步骤,创建分支并切换到该分支上;
下面有个问题,所谓的创建分支,创建的分支的代码跟哪个一样呢?
a.新分支在哪个分支上创建,所创建的分支的代码就和哪个分支一致;
b.一般自己该如何新建分支呢?一般情况下master是生产用的代码,理论上是没有任何问题的,所以一般创建分支都是
在master分支上创建新的分支,然后在新分支上修改;
3.对修改代码进行提交
a.首先使用git status查看修改了哪些文件,使用git diff查看对文件的哪些部分做了修改;
b.保存代码修改:可以分条对文件进行保存,git add file_path/file_name分条保存文件,也可以通过git add . 来保存所有
的修改,但是使用git add . 保存的话要慎重,这需要你在.ignore文件里配置不需要提交的文件,如项目每次运行所新生成
的文件,.class文件、.impl文件等,否则可能就会把.dev分支的代码搞乱,所以使用git add .前一定保证自己.ignore文件
里进行了相应的配置
c.使用git commit命令来对上述的保存进行相应的说明,git commit -m "对上述文件做了哪些修改"
d.在提交最代码的修改前一定要pull下远程的代码,如果有几个人在同一个分支上协同开发的话,在你pull远程代码到本地和
对代码修改后提交到远端之前,远端的代码可能已经改变了,所以git push推送自己的代码之前得先pull下远程最新代码,
如果pull过来后,远程跟本地有冲突,解决冲突后再提交代码;
e.通过git push origin branch_name将自己最新的修改推动到远端;
4.合并代码
a.一般合并代码会有个方向的问题,这个一定要注意,否则后果非常严重;
b.一般合并代码的顺序是首先在本地测试自己分支的代码,本地测试没有问题后才可以考虑合并代码;
c.合并分支的顺序为:首先将自己分支的代码先合并到develop分支,本地测试没什么问题后,将修改push到develop远端,
在远端部署项目develop分支的代码,然后交给项目经理测试,项目经理测试有问题的话再修改代码,push到分支远端,
继续往develop提交合并修改,再让项目经理测试,只至没有什么问题,然后才可以考虑往test分支提交。往test分支提交
代码过程和往develop提交是一致的,合并完成并部署成功后交由QA测试,这时的测试人员是QA测试人员,一般是不允许
程序出现什么问题的,否则后果也很严重;qa测试人员通过代码的测试后然后才能往master分支上合并,合并过程和往
test和develop合并一样。
d.从c中可以看出,合并代码的过程为自己的分支->develop,自己分支->test,自己分支->master合并的过程,不存在develop,test
和master之间的合并。
e.合并的过程中会有冲突,一定要谨慎地处理冲突,否则就有可能把别的代码给删掉,一个不怎么好的实践就是直接将远程的develop
分支代码拷贝过来,然后将自己的修改再添加进去,这中情况仅仅针对mybatis那种sqlMapper.xml文件类似的冲突的自己不知
怎么快速解决冲突的情况,一般情况下自己是可以快速解决冲突的。
f.解决冲突后一定要自己在本地运行下代码,代码没有什么问题后才可以将自己的修改add,commit,push到远端;
5.tips
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)