为什么要有版本控制?

个人->为了有后悔药吃~~


git的优势

  • 大部分操作在本地完成,不需要联网
  • 完整性保证
  • 尽可能添加数据而不是删除或修改数据
  • 分支操作非常快捷流畅
  • 与linux命令全面兼容

git结构

工作区 -> 写代码
暂存区 -> 临时存储
本地库 -> 历史版本

git 和 代码托管中心

代码托管中心的任务:维护远程库

  • 局域网环境下
  • GitLab服务器
  • 外网环境下
  • Github
  • 码云

本地库和远程库

  • 团队内部协作
  • 跨团队协作
  1. 本地库初始化


    注意:.git目录存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改

  2. 设置签名
    形式:
    • 用户名:
    • 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<日志> 注意此处没有文件名

* 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