Git是一个版本管理工具,一个人开发可能没什么问题,但是一旦涉及多人协作开发,怎么样同步代码就是个问题。一般我们保持master分支为稳定分支,即发版后才合并代码的分支。创建dev分支作为平时的开发分支。所有人在dev分支上提交代码。项目发版时管理员将dev分支代码合并到master上。操作步骤如下:
一、在服务器上搭建git仓库
一般我们使用gitlab搭建自己的服务器,或者使用开放的服务器:
比如github.com、gitee.com、coding.com
在git服务器建立一个项目,与本地项目名同名。
二、如果本地已经创建好仓库,将本地仓库与远程仓库关联起来
1、本地代码生成仓库并提交
git init
git add --all
git commit -m “init”
2、给本地仓库关联一个远程仓库。
git remote add origin xxxx.git
3.将本地master推送到远程库,并指定push命令的默认远程库。
git push -u origin master
还有一种比较笨的方式:将远程仓库克隆到本地,指定一个临时文件夹temp:【git clone xxx.git temp】。然后将里面的.git文件夹和.gitignore文件移动到项目文件夹中,然后删除temp文件夹。
三、项目管理员在本地创建开发分支dev,并推到远程仓库中。所有人都在dev分支上提交代码
git branch dev
git push origin dev
四、开发人员在本地创建一个远程库dev分支的副本dev(名字叫dev也可以是其它的)
git pull (先更新一遍配置)
git checkout -b dev origin/dev (在远程orgin/dev分支的基础上创建本地dev分支)
五、将本地dev分支与远程分支关联起来:
git branch --set-upstream-to dev origin/dev
六、所有人都在dev上提交代码(建议创建自己的分支,合并到dev上再提交),并且所有人不允许在master上开发和提交代码。管理员发布项目版本后,将dev代码合并到master分支上即可。
建立以上规则后,多人协作的模式就是下面这样:
- 首先,可以试图用git push origin branch-name推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin branch-name推送能就成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支
链接关系没有创建,用命令git branch --set-upstream branch-name
origin/branch-name。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
附:git使用ssh协议生成公私钥:
git使用ssh协议克隆代码时,默认使用是的用户目录下.ssh/id_rsa的文件认证,因此生成公私钥的时候,文件名称保持默认,即id_rsa
生成公私钥命令:
ssh-keygen -t rsa -C “说明”
Enter后会询问在./ssh/id_rsa文件保存私钥,回车默认。
或指定保存到文件xxx中:
ssh-keygen -t rsa -C “说明” -f ~/.ssh/xxx