为什么要有版本控制?
个人->为了有后悔药吃~~
git的优势
- 大部分操作在本地完成,不需要联网
 - 完整性保证
 - 尽可能添加数据而不是删除或修改数据
 - 分支操作非常快捷流畅
 - 与linux命令全面兼容
 
git结构
工作区 -> 写代码
暂存区 -> 临时存储
本地库 -> 历史版本
git 和 代码托管中心
代码托管中心的任务:维护远程库
- 局域网环境下
 - GitLab服务器
 - 外网环境下
 - Github
 - 码云
 
本地库和远程库
- 团队内部协作
 - 跨团队协作
 
- 本地库初始化
注意:.git目录存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改
 - 设置签名
形式:- 用户名:
 - Email地址:
 
 
作用:区分不用开发人员的身份
辨析:这里设置的签名和登陆远程库(代码托管中心)的账号,密码没有任何关系。
命令:
* 项目级别/仓库级别:仅在当前本地库范围内有效
* 系统用户级别:等录当前操作系统的用户范围
* 级别优先级:就近原则
git status  追踪文件  查看工作区,暂存区状态
上面显示有一个未追踪的文件
git add   将工作区的"新建/修改"添加到暂存区
ps:git while convert LF to CRLF  表明  每一行的结尾按照window风格剪出按照unix风格提交
git commit -m  "commit message" [file name]  将暂存区的内容提交到本地库
git log 显示commit历史信息   最完整
- git log --pretty=oneline 以最简洁的形式显示
 - git log --oneline hash值也只显示一部分了
 - git reflog  其中有HEAD@{移动到当前版本需要多少步}
ps:多屏显示控制方式: 空格向下翻页,b向上翻页,q退出
git reset --hard <操作码> 回退操作
其他操作: - git reset --hard HEAD^ 回退一步,有几个^回退几步
 - git reset --hard HEAD~n  回退n步
git diff <文件名> 比较文件差异 
分支操作
- git branch -v 显示分支个数
 - git branch 
创建分支  - git checkout 
切换到分支  - git pull origin growing-dev 拉取其他分支
 - 将分支a做的修改合并到分支b上
- 首先 切换到分支b
 - 然后 git merge 分支a
 
 - 解决合并冲突
- 预备操作:将heihei分支的1.txt某一行改了,并将master分支的同一行也改了
打开文件就是:
由我们自己决定选择是哪一个分支的内容,修改完文件后- git add <文件>
 - git add . 将当前文件夹内的文件全部add
 - git commit -m<日志> 注意此处没有文件名
 
 
 - 预备操作:将heihei分支的1.txt某一行改了,并将master分支的同一行也改了
 
* git clone 不指定分支 * git clone -b dev_jk http://10.1.1.11/service/tmall-service.git 指定分支
合并请求发送流程
step 1 获取并检出这个合并请求的分支
git fetch origin
git checkout -b feature/growing-dev origin/feature/growing-dev
step 2 本地查看更改
step 3 合并分支并修复出现的任何冲突
git checkout growing-dev
git merge --no-ff feature/growing-dev
step 4 将合并结果推送到 GitLab
git push origin growing-dev
嘿嘿偷一张指令图,原网址一篇文章,教你学会git
