目录:

  • 1 首先
  • 2 管理历史数据的数据库
  • 3 修改记录的提交
  • 4 工作树和索引
  • 5 安装git
  • 6 初期设定
  • 7 新建数据库
  • 8 提交文件
  • 9 push到远程数据库
  • 10 clone远程数据库
  • 11 从远程数据库pull
  • 12 在贝格乐上建立数据库
  • 13 push到远程数据库
  • 14 克隆远程数据库
  • 15 从克隆的数据库进行push
  • 16 从远程数据库pull
  • 17 合并修改记录
  • 18 解决冲突
  • 19 push冲突的状态
  • 20 解决冲突

首先

  • 什么是git:版本管理系统
  • 有什么用:
    1 把文档还原到编辑前的状态
    2 解决多人写代码出现的代码覆盖问题
  • git是一个分布式版本管理系统
  • 是为了更好的管理Linux内核开发创立的
  • 可以把文档的状态作为更新记录保存起来
  • 可以把编辑过的文档复原到以前的状态
  • 可以显示编辑前后的内容差异
  • 覆盖时会有警告

二 管理历史记录的数据库

  • 数据库(也可以叫仓库吧,是的)
  • 从标题看来,数据库是用来管理历史记录的
  • 数据库(Repository)是记录文件或目录状态的地方,存储着内容修改的历史记录
  • 数据库的分类
    1 远程数据库:配有专用的服务器,多人共享而建立的
    2 本地数据库:方便个人使用
  • 创建数据库:
    1 创建全新的数据库
    2 复制远程的数据库

三 修改记录的提交

  • 这里的提交是一个名词吗?
  • 提交:把文件/目录的添加和变更保存到数据库
  • 提交后,数据库中会生成上次提交的状态与当前状态的差异记录(revision)
  • 提交是以时间顺序排列状态被保存到数据库中的,凭借该提交和最新的文件状态,就可以知道过去的修改记录以及内容
  • 系统会给提交命名,指定这个命名,就可以在数据库中找到对应的提交
  • 提交要分开:不同类别的修改(bug,功能添加)要尽量分开提交,方便以后从历史记录里查找特定的修改内容
  • 提交时一定要输入提交的信息:
    格式:
    第一行:提交修改内容的摘要
    第二行:空行
    第三行:修改的理由

四 工作树和索引

  • 索引就是暂存区吧
  • 工作树:实际操作的目录
  • 工作树—–》索引—–》数据库
  • 在数据库和工作树之间有索引,索引是为了向数据库提交做准备的区域
  • 没有被加入索引档案不能被提交
  • 凭借中间的索引,可以避免工作树中不必要的文件提交,还可以将文件修改内容的一部分加入索引区域并提交

五 安装git

  • 选择用命令行
  • git –version//两个杠杠
    执行version,如果出现版本就成功了

六 初期设定

  • 输入用户名和电子邮件
    安装git后设置一次就够了
    这些信息将作为提交者信息显示在更新历史中
$ git config --global user.name "<用户名>"
$ git config --global user.email "<电子邮件>"
  • 以下命令能让Git以彩色显示。
$ git config --global color.ui auto
  • 您可以为Git命令设定别名。例如:把「checkout」缩略为「co」,然后就使用「co」来执行命令。
$ git config --global alias.co checkout
  • 在win下使用git,含有非ASCII字符的文件会乱码,所以要设置一下
$ git config --global core.quotepath off
  • -

九 push到远程数据库

  • 如何在远程数据库上共享本地数据库的修改记录
  • push:上传本地数据库中存储的修改记录,将本地数据库的修改记录共享到远程数据库,所以远程数据库的修改记录就会和本地数据库的修改记录保持同步

十 克隆远程数据库

  • clone:复制远程数据库
  • 将远程数据库的全部内容都down下拉

十一 从远程数据库pull

  • pull:远程到本地
  • pull==下载

十二 在贝格乐建立远程数据库(我们公司用的是什么??)

  • 假设公司服务器地址是https://shj

十三 push到远程数据库

  • 给远程数据库取别名
    目的:下次推送就不需要输入长串的数据库地址了
    命令:git remote add <name> <url>
    name:服务器的别名
    url :服务器的地址
    ex:
//origin是服务器的别名
$ git remote add origin https://[your_space_id].backlogtool.com/git/[your_project_key]/tutorial.git
  • pull或者push的时候,如果省略了数据库的名称,默认是origin的远程数据库
  • 使用push向数据库推送更新的内容:
//repository是目标地址
//refspec指定推送的分支
git push <repository> <refspec>

ex:

//origin是服务器的别名
//master是分支
//向origin推送
//-u:如果指定-u,那么下次推送就可以省略分支名称了,但是第一次运行指令向空的远程数据库推送时,必须指定 远程数据库的名称和分支名称
//用户名,密码,公司给吗??
$ git push -u origin master
  • 命令总结:
//1 给服务器起别名
git remote add <name> <url>
2 //向服务器推送
git push <repository> <refspec>
3//推送
$ git push -u origin master
4 -u:如果指定-u,下次推送时就可以省略分支名称了

十四 克隆远程数据库

  • -

合并修改内容

  • 合并:在pull之后,进行下一次push之前,如果其他人进行了推送内容到远程数据库,你的push会被拒绝

解决冲突

  • 执行合并即可自动合并git修改的部分
  • 如果远程数据库和本地的同一个地方都发生了修改的情况下,因无法自动判断要选用哪一个修改,所以就发生冲突
    <<<<<<<<<<<<<<
    本地
    =============
    远程数据库
    <<<<<<<<<<<<<<

push冲突的状态

  • -

解决冲突