为什么要有版本控制?
个人->为了有后悔药吃~~
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