四阶段day2-git分布式版本控制

团队开发的核心是版本控制。
缺陷管理--问题驱动开发
持续集成--反复集成和测试

百度 git 阮一峰

Git 工作流程
http://www.ruanyifeng.com/blog/2015/12/git-workflow.html

常用 Git 命令清单
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

Git远程操作详解
http://www.ruanyifeng.com/blog/2014/06/git_remote.html

版本控制历史

锁定模式-不利于团队开发
1990年--CVS
1992年--ClearCase
1994年--VSS

合并模式

2000年--Subversion
2005年--Git--分布式版本系统
Mercury--python编译

Git分支管理策略:

-git-flow
-github-flow 常用型
-gitlab-flow

gitee.com ---->公司内部私服(gitlab)

使用github-flow策略管理团队开发代码流程准备工作(远程代码仓库操作)

1、创建新仓库
2、修改.gitignore文件(公共文件,一般由组长负责)
3、将master分支设置为保护分支
4、添加团队成员
5、部署公钥(免密访问)

创建密钥对流程(linux系统)

ssh-keygen 创建密钥对
ssh-keygen --help 查看创建密钥对的帮助信息
cd .ssh 切换至密钥文件夹(打开公钥文件,将公钥传至github或者gitee代码保管中心的密钥相关配置,即可实现免密pull和pash功能)

github-flow分支管理策略的实施

本地操作

1、从仓库克隆项目到本机
git clone https://gitee.com/sharkkim/design.git

2、创建并切换到自己的分支
git branch 分支名 ——创建分支
git checkout 分支名 ——切换分支
或者
git checkout -b 分支名 ——创建并切换分支

touch hello.py 创建新文件

3、本地实施控制
git status ——查看工作区和暂存区文件状态(重要命令)

git add 文件名—— 从工作区添加或更新文件到暂存区
git add . —— 将工作区所有文件更新至暂存区

git reset HEAD 文件名—— 从暂存区移除文件
git checkout -- 文件名—— 从暂存区更新文件到工作区

git commit -m ‘提交注释’ ——从暂存区添加文件到仓库

git log --pretty=oneline --graph --abbrev-commit ——查看日志
git tag -a v0.1 哈希值 —— 为某个版本打上 v0.1 的标签

4、推送分支到服务器

git push origin 分支名—— 将自己的分支推送到服务器上

5、在线上发起Pull Request(合并请求)

请求合并自己的工作成果到master分支 ---无合并冲突

如果有合并冲突,无法自动合并,那么就应该通过下面的方式解决冲突
(1)先将服务器上最新版本pull到本地

git pull origin master
(git pull相当于两条命令:
a、git fetch-将服务器上的代码下载到本地;
b、git merge-将下载的代码合并到当前分支)

git合并代码时有两种选择
git merge 其他分支 - 历史记录会看到所有合并过的分支
git rebase 其他分支 -合并之后历史记录是扁平化的

下载更新本地代码的两种方法:
a、git pull =git fetch +git merge
b、git fetch+(git diff)+git rebase

(2)可以通过git diff查看哪些地方是有冲突的。然后一定是人与人当面沟通确定保留谁的版本
查看冲突的文件并解决冲突(文件中有标记)

(3)解决冲突后重复执行第3步、第4步即可

你可能感兴趣的:(四阶段day2-git分布式版本控制)