Git——简介

Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有什么特点?简单来说就是:高端大气上档次!

那什么是版本控制系统?

有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?

这个软件用起来就应该像这个样子,能记录每次文件的改动:

版本文件名用户说明日期
1 service.doc 张三 删除了软件服务条款5 7/12 10:38
2 service.doc 张三 增加了License人数限制 7/12 18:09
3 service.doc 李四 财务部门调整了合同金额 7/13 9:51
4 service.doc 张三 延长了免费升级周期 7/14 15:17

这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

  • git相关概念

    • 工作目录: 持有实际文件
    • 暂存区(Index): 缓存区域,临时保存改动
    •  

       

    • HEAD: 指向最后一次提交的结果git
  • git常用命令操作

    • 创建新仓库
      • 创建新文件夹,打开,然后执行>git init
    • 检出仓库
      • 克隆本地仓库: git clone /path/to/repository
      • 克隆远程仓库: git clone username@host:/path/to/repository
    • 添加至暂存区
      • git add 
      • git add *
      • git add .
    • 提交
      • git commit -m "代码提交信息"
        • 改动已经提交到了 HEAD,但还没到远端仓库
    • 推送
      • git push origin master
        • master是分支名,其他分支换名即可
      • git remote add origin <server-path>
        • 若本地没有克隆现有仓库,此时想将仓库连接到某个远程服务器时可如此操作
  • 分支特性

    • 分支是用来将特性开发绝缘开来的
    • 在创建仓库的时候,master 是“默认的”分支
    • 在其他分支上进行开发,完成后再将它们合并到主分支上
      •  

         

  • 分支模式

  • 分支操作

    • 创建一个叫做“feature_x”的分支,并切换
      • git checkout -b feature_x
    • 切换回master分支
      • git checkout master
    • 删除分支
      • git branch -d feature_x
    • 将本地分支推动至远端
      • git push origin 
  • 更新&合并

    • 更新本地仓库至最新
      • git pull
    • 合并其他分支至自己分支
      • git merge 
  • 冲突

    • 合并时并不总是一帆风顺的,如果修改相同的数据,此时就需要进行手动解决冲突
    • 修改后添加文件. >git add 
    • 合并之前可以diff查看
      • git diff <source_branch> <target_branch>
  • 标签

    • 为指定提交添加标签
      • git tag 1.0.0 88cb7f51e1
      • 其中88cb7f51e1是标记的提交 ID 的前 10 位字符,课基于 git log来获取
      • 相当于是给提交起名
  • 日志

    • 查看本地仓库的历史记录
      • git log
    • 只看某一个人的提交记录
      • git log --author=jim
    • 压缩每一条提交记录只占一行输出
      • git log --pretty=oneline
    • 通过 ASCII 艺术的树形结构来展示所有的分支,名字+标签
      • git log --graph --oneline --decorate --all
    • 看看哪些文件改变了
      • git log --name-status
  • 恢复

    • 操作失误时替换掉本地改动
      • git checkout -- 
      • 此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件
    • 改动本地所有文件恢复至 HEAD
      • git fetch origin
      • git reset --hard origin/master
        • master可以指定远程存在的其他分支
  • git常用配置

    • 配置提交人+邮件
      • git config --global user.name "abc" 
      • git config --global user.email "abc@123.com"

 

posted @ 2020-06-13 08:14  Flynn丶傅  阅读(95)  评论(0编辑  收藏  举报