在所有的操作之前一定得注意,在本地修改代码的时候,一点要先切换到新建的分支上再进行修改!!!
(今天忘记切换分支直接在master分支修改了。。悔得我想哭。。。)
有以下两种方式:
第一种适用于没有项目的权限
在建分支之前,先fork下来同事的项目,然后将fork下来的项目clone到本地。。。
(fork下来的原因是因为,fork下来就在我们的repository了,我们就有权限更改内容,直接用别人的项目会没有权限的。。这是这两天犯蠢的根本原因)
修改完自己的代码之后执行以下命令:
1.本地建立分支并切换到分支上
git checkout -b dev ------>git branch dev 和 git checkout dev
2.push dev分支到远程仓库上面
git push origin dev
3.查看所有的分支并且看情况删除某些分支
git branch -a 查看所有分支
git branch -D test 删除本地的test分支
git push origin --delete test 删除远程分支test
第三步非必需,看着办就行
4.切换到dev分支上,可用git status查看在哪个分支
git checkout dev 切换到dev分支
5.提交dev分支的内容修改到远程dev分支上面
git add .
git commit -m "this is dev"
git push --set-upstream origin dev 或者直接 git push origin dev (执行失败就用前者)
6.切换到本地master分支上面
git checkout master
7.将本地分支和合并到本地master分支上面来
git merge dev
8.合并后的master分支远程到仓库
git push origin master
9.按理说是要删掉本地和远程的分支的。。到时候记得删就行
以上大概是所有的步骤。。。至于冲突之类的东西,什么时候遇到什么时候再说吧。。。
https://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html //这个大概能解决一些简单的冲突
到这里会有很重要的一步,发出pull request,向你fork下来的那个项目主人发出pull request 申请,等他同意并merge了,你才算是真的合并了代码。。
方框部分是选定同意你请求的审核者,会有一个列表,最好选master分支上的那个人
第二种适用于有项目的权限,可以随便作的那种
1.直接clone项目到本地,不用fork到自己的仓库啦
2.创建分支并切换到分支,push分支到远程仓库
git checkout -b dev
git push origin dev
3.在分支上修改代码,并提交到远程分支
git add .
git commit -m "SD-11: test test test" //注意这个信息会出现在发送的pull request的title里面
git push orign dev
到这里就提交到远程dev分支上了,当然如果我们有权限merge那就随便作,如果没有那就执行下面的pull request..等人家来merge
4.在网页端打开那个项目,会出现pull request的。。。接下来的操作一致
title部分一定要填,不然提交不了。。不过这个一般会自动填入
第二种方式有一个小问题就是,我们在网页端发送pull request,别人同意合并代码了之后,但其实本地master分支的代码并不是最新的,所以最好pull一下保持一致。。