Git 团队协作使用说明
分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活.
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上.
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,需要时往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
客户端配置
1.创建管理ssh密钥
在默认用户的主目录路径下,运行以下命令,按照提示创建(可直接回车略过)
$ cd ~
$ ssh-keygen -t rsa
公钥和私钥默认会保存在~/.ssh目录下,如下所示:
id_rsa(私钥)
id_rsa.pub(公钥)
known_hosts(已知传输主机列表)
2.将客户端的公钥文件通过ssh复制到服务器下:
$ ssh-copy-id [email protected]39.224.1.11
3.从Git服务器同步文件
$ git clone [email protected]139.224.1.11:~/repositories/colleges.git
(1)在本地创建远端不存在分支
创建个人开发分支vincent:
$ git checkout -b vincent
将本地分支推送到远程仓库
$ git push -u origin vincent
(2)在本地创建远端存在的分支
首先创建一个对应的本地分支
$ git checkout -b dev
然后拉取远端dev分支,并建立上游追踪关系:
$ git pull origin dev
这里pull命令的格式是:
$ git pull <远程主机名> <远程分支名>:<本地分支名>
其中我们省略了冒号:之后的本地分支名,那么则默认为本地当前分支。
pull命令等同以下的两条命令:
$ git fetch origin dev:dev
$ git merge origin/dev
个人推荐使用fetch/merge的方式获取远端数据。
4.Git添加文件
git add -u:将文件的修改、文件的删除,添加到暂存区。
git add .:将文件的修改,文件的新建,添加到暂存区。
git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。
5.Git常用命令
git init //初始化已存在文件
git config –local -l //查看git配置(local只针对本项目有效,还有system,global)
git config –local user.name lijiancode//添加用户名
git config –local user.email [email protected] //添加电子邮件
git add -A //添加内容
git commit -m ‘dragon ball file’ //填写提交说明
git remote add origin https://github.com/lijiancode/dragonball //设置远程仓库的地址
git rm –cached 文件名 删除git索引中特定文件的内容
git reset HEAD 文件名 从文档库 删除已经执行过git commit的文件
git reset –hard HEAD 文件名 不仅把git commit的文件从文档库移出来,恢复了本地文件。
git branch -d 分支名称 删除分支(不能删除当前分支)
git branch lijian 创建分支
git branch 查看分支
git branch –list 查看分支
checkout 分支名称 切换分支
git branch -m 名称 修改当前分支名称
gitk all 显示所有分支
git checkout HEAD 取出文档库中最新的版本
git checkout HEAD ^取出文档库中次新版本
git merge lijian 把lijian分支合并到当前锋分支节点,不产生新节点
git merge –no-ff lijian 把lijian分支合并到当前分支,产生新的节点
git merge –abort 回滚到分支合并冲突之前的状态
git revert commit 节点 回到指定节点的上一个节点
git log 查看节点信息,还可以加上“–graph”和“–online”参数
git remote add origin https://github.com/lijiancode/Angular 添加路径地址
git push origin master 把本地文档库中的代码上传到服务器
git checkout 指令有一种情况:如果取出的指令和当前文档库中最新的commit的文件内容不同,这个文件内容记录在git索引中,执行git commit的时候会存入文档库成为新的节点。避免这种情况的方式是执行 git checkout HEAD
git-bash出现[master +1 ~0 -0 !]>
added (+)
modified (~)
deleted (-)
conflict (!)
推荐git教程
Git官方教程:
https://git-scm.com/book/zh/v2
阮一峰git教程: