Git结构:
# 工作区:当前编辑的区域
# 缓存区:add之后的区域
# 本地仓库:commit之后的区域
# 远程仓库:GitHub,gitlab,码云...

一、Git的初步认识

一、Git是什么?
     git 是一种版本控制器,更直白的说,团队开发的时候,管理代码使用的软件
git官网下载:https://www.git-scm.com/download/

二、Git的安装
     windows下可以直接下一步,windows系统安装完成后,鼠标右键可以看到新增了2个git相关的属性,其中Git Bash Here
     linux下安装:yum -y install git

三、Git的初步配置
    # 初次提交需要设置邮箱和用户名(更具提示信息设计即可)
    git config --global user.name  # 设置用户
    git config --global user.email  # 设置邮箱

    git config --global --unset user.name  # 删除用户
    git config --global --unset user.email  # 删除邮箱

二、Git 命令使用

# "进入想要管理的文件夹之后git bash here"
git init  # 初始化本地仓库(.git隐藏文件 包含了所有的操作记录)
git status  # 当前管理状态(没管之前是红色,管谁谁变绿色)  被管理之后文件只要有改动就会被自动检测并显示成红色
git add 文件名/.  # .表示管所有(全变绿色)
git commit -m '解释信息(越详细越好)'  # 将所有变绿的文件拷贝一份放到仓库(变白色)

git log  # 查看提交记录
git reset --hard  '序列号'  # 回退到之前版本状态
git reflog  # 查看所有版本(包括回退之前的新版本)

git checkout filename # 回到最近的一次提交状态
git reset HEAD filename. # 将指定文件从缓存区拉取到工作区
git diff  # 对比缓存区和工作区的区别
git diff --cached  # 缓存区和本地仓库的区别  

# "当开发某个功能到1/2时并且没有提交,如果想要回到原来的状态修复原来的代码"
git stash  # 将你开发一半的代码先暂时存起来(此时会自动回到修改之前的状态 大白话就是把红色文件全部暂存)
# 修复之前的bug
# 提交修复代码(可能会出现冲突 需要手动修改冲突)
git stash pop  # 再次回到开发某个功能到1/2处
# "git stash 其他命令"
git stash list  # 查看暂存区所有的记录
git stash clear  # 清空暂存区
git stash apply 编号  # 将指定的编号记录拿出来 
git stash drop 编号  # 删除指定编号的记录 

# "一般实际工作中修复bug不经常用git stash,而是使用分支结构"
git branch dev  # 创建分支(会拷贝master全部代码)
git checkout dev  # 切换分支(在切换到其他分支之前 一定要将当前分支的内容先提交)
# 如果master出现bug 一定不在直接在master上面修改bug因为可能还会有其他bug 应该再创建分支专门修复bug
git branch bug  # 创建bug修复bug并提交
git checkout master  # 切换回master分支 
git merge bug  # 将bug分支合并到master分支上(可能会产生冲突还是需要自己手动解决)
git branch -d bug  # 删除bug分支
git branch  # 查看所有的分支
# "公司出现bug不要回答的太细只需要回答:创建一个bug分支,再bug分支上进行修复,修复完成后合并到master上即可"

三、Git之远程仓库 

# 远程保存代码平台>>>:github
# 公共的:GitHub,码云
# 自己搭建:gitlab
# 第一次 本地代码推送远程
cd 项目目录
git remote add origin 远程地址
git push origin master
git push origin dev

# 增删代码后推送远程仓库
git add .
git commit -m '注释'
git push origin dev
# 删除
git rm 文件
git push origin dev
# 查看远程仓库
git remote
git remote -v

# 删除远程仓库
命令:git remote remove <远程地址>

# 添加远程仓库
git remote add <远程仓库别名> <远程仓库地址>

四、远程上传以及获取代码

git clone 远程地址
获取远程代码到本地,修改后提交:
git init
git remote add origin 远程地址
git pull origin master  # 拉取master下代码

提交代码:
git add .
git commit -m "注释"
git push origin master  # 提交代码到master下

五、代码合并

出现代码冲突:手动合并

# git rebase
git merge一样也是合并分支,不同之处在于会将多个版本的线路直接合并成一条(让提交记录更加的简洁),而git merge不会
# 也会产生冲突:手动修改完冲突之后再执行git rebase --skip
01-01 16:04