欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Git进行多人协作开发

程序员文章站 2024-01-24 20:19:59
...

开始Get高端大气上档次的Git!????

一 . 安装git

git 安装地址: https://git-scm.com/downloads
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
使用Git进行多人协作开发
确认安装成功后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "aaa@qq.com"

说明:git config --list 命令可以查看当前Git环境所有配置

二 . 注册GitHub及创建仓库

注册GitHub: https://github.com
注册成功之后,进到GitHub主页,在页面有上方用户菜单上选择 “+”->New repository 创建一个新的仓库
使用Git进行多人协作开发
给仓库取一个名字,点击创建仓库按钮 你将成功创建一个仓库
使用Git进行多人协作开发

三 . 创建本地仓库

在本地合适的地方创建一个目录,进到这个目录,通过git init命令把这个目录变成Git可以管理的仓库。


$ mkdir test
$ cd test
## 在本地初始化git仓库
$ git init

四 . 将本地仓库和远程库关联

为了把本地的仓库与github的仓库关联起来,还需要配置ssh key。

创建ssh key

$ ssh-****** -t rsa -C "aaa@qq.com"

然后一路回车,如果创建成功,本地用户主目录下就会有一个 .ssh文件,里面有id_rsaid_rsa.pub两个文件。id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
你可以cd ~/.ssh查看你的ssh key

$ cd ~/.ssh
aaa@qq.com MINGW64 ~/.ssh
$ ls
id_rsa  id_rsa.pub  known_hosts
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDpVE44p3iltnmBgTyBtLMh6Hr1qyPOEziCXrM2vAqOK4O+Tv3FkzsDlaj...

这个就是你的公钥,把它复制到GitHub进行配置:
使用Git进行多人协作开发
恭喜你添加成功了,是不是很easy ????

接下来就可以把远程GitHub库和本地仓库关联了
git remote add 仓库名 仓库地址的命令:

$ git remote add origin aaa@qq.com:ZxyongYo/test.git

你的仓库地址在这哦
使用Git进行多人协作开发
现在,你就可以把本地库的所有内容推送到远程库上了:

$ git push -u origin master
Everything up-to-date
Branch 'master' set up to track remote branch 'master' from 'origin'.

提示:如果这一步报错了 是因为远程库与本地库不一致造成的,那么我们把远程库同步到本地库就可以了。
使用指令git pull origin master
然后再push就行了 ????

五 . 从远程库克隆

克隆(clone)

在实际开发中,大多数时候,我们没有机会从头init仓库,而是远程仓库已经存在,我们要参与到项目中,这时只需要将远程仓库clone下来就好。(这样默认clone master分支)

$ git clone 仓库地址

新项目还在开发阶段,没有正式对外发布,所以开发同事合并代码到dev分支上(或者其他名称分支上),而不是到master分支上, 这时我们需要使用命令:

$ git clone -b dev 仓库地址

分支(branch)

通常情况下, 我们自己在协助开发, 需要添加一个新功能的时候, 是不能在主分支上直接修改的, 需要我们自己再创建一个新的分支, 等新功能开发完成后再合并到主分支 ????

## 新建一个debug分支
$ git branch debug
## 切换到debug分支
## 可简写为 git checkout -b debug
$ git checkout debug
Switched to branch 'debug'
## 查看分支,当前已经在debug分支上面
$ git branch
* debug
  master
## debug解决后,把修改合并会master,并删除iss1分支
$ git checkout master
$ git merge debug 	
$ git branch -d debug

拉取别人的提交

在我们完成了某项功能的修改,需要push到远程的时候,其他协作者可能已经提交了他们的修改,这时,我们需要先把最新的提交拉取下来,加入我们的修改,再重新提交上去。


$ git push
## push被驳回了,因为有其他人已经提交了更新
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'aaa@qq.com:JavyZheng/git_demo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details 
## 拉取远程提交内容并合并到当前工作区
$ git pull
## 重新push到远程
$ git push

解决冲突

当拉取协作者的提交时,很可能不同开发者修改了同一个文件的同一部分,这时候,就会出现冲突,我们需要手动解决这些冲突,再重新提交上去。
例如冲突代码如下:

function test() {
<<<<<<< HEAD
    console.info('This is master branch.');
=======
    console.info('This is developOne1 branch.');
>>>>>>> developOne
}

根据需求我们手动将代码改为:

function test() {
    console.info('This is master branch.');
}

再提交就没有问题了 ????