使用Git进行多人协作开发
开始Get高端大气上档次的Git!????
一 . 安装git
git 安装地址: https://git-scm.com/downloads
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明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 init命令把这个目录变成Git可以管理的仓库。
$ mkdir test
$ cd test
## 在本地初始化git仓库
$ git init
四 . 将本地仓库和远程库关联
为了把本地的仓库与github的仓库关联起来,还需要配置ssh key。
创建ssh key
$ ssh-****** -t rsa -C "aaa@qq.com"
然后一路回车,如果创建成功,本地用户主目录下就会有一个 .ssh
文件,里面有id_rsa
和id_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进行配置:
恭喜你添加成功了,是不是很easy ????
接下来就可以把远程GitHub库和本地仓库关联了
用 git remote add 仓库名 仓库地址
的命令:
$ git remote add origin aaa@qq.com:ZxyongYo/test.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.');
}
再提交就没有问题了 ????
上一篇: Jquery实现控件的隐藏和显示实例
下一篇: 使用Git多人协作开发时分支合并流程