Git多人协作

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分支上即可。

建立以上规则后,多人协作的模式就是下面这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用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

你可能感兴趣的:(linux)