Git是一个分布式版本控制系统。
1、git的应用场景
1.备份
小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。
场景二:代码还原
这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的代码已经回不到从前了。回滚版本。
场景三:协同开发
场景四:追溯问题代码的编写人和编写时间
-
打开Git Bash
-
设置用户信息 git config -global user.name "huan" git config -global user.email "1320156914@qq.com"
2、安装git
安装git
brew install git
查看git版本
git --version
如果查看git版本时遇到这个问题
zhouchenghuan@zhoucheuandembp ~ % git –version
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
这个错误信息表明你的Mac电脑上的Xcode Command Line Tools没有正确安装或激活。你可以通过以下步骤来修复这个问题:
xcode-select --install
然后重装git
安装成功
3、Git基础使用
获取本地仓库
git init
每提交一次(git commit) 就会增加一个新的版本。
-
git add (工作区-> 暂存区)
-
git commit (暂存区->本地仓库)
查看修改的状态
作用:查看的修改的状态(暂存区、工作区)
命令形式:git status
查看日志:git log
git branch 查看本地分支
git branch 分支名 创建本地分支
git log 比branch好用一些,查看非常直观。
git log 查看日志
git -log 以精简的方式显示提交记录
git checkout 切换分支
如 git checkout master 切换到主分支
git checkout -b 切换并创建分支
git merge 'dev01'
git reset --hard commitID 版本回退
作用是切换版本
commitID可以使用git -log指令查看
如何查看已经删除的记录?
git reflog 这个指令可以看到已经删除的提交记录
开发中分支使用原则与流程
Master (生产)分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支。
develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要合并到master。准备上线。
Feature 分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
hotfix分支
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
解决冲突
当两个分支上的同一个文件可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决:
1、我们将文件修改成我们期望的值
2、将修改后的文件加入暂存区(add)
3、提交到仓库(commit)
git branch -d dev02 删除分支
git branch -D dev02 强制删除分支
git merge 合并分支
比如你要将dev01合并到master,那么你先 git checkout master ,再git merge dev01
4、Git远程仓库
常见的托管服务 github、码云 gitee,个人一般用gitee,企业用gitLab。
https://gitee.com 注册账号
新建一个仓库,填一下仓库名,其他不要填
git remote add origin <远程仓库地址> 添加远程仓库
git remote 查看远程仓库
git push -u origin "master" 推送到远程仓库 (如果不在master分支则要切换master分支)
git push -f origin master 强制推送到远程仓库
git fetch 它的主要功能是从远程仓库获取最新的提交信息,但并不会自动将这些更新合并到本地的当前分支。
git clone [远程仓库地址] [本地目录名称(可选)] 用于从远程仓库复制一份完整的项目到本地,这个用的很多,同事会叫你把代码拉下来,在他们的基础上修改