Git教程

因为长时间使用git+hexo来写自己的博客;所以打算系统学习git(教程来源于菜鸟编程)

Git和传统的版本控制器系统的区别

  • 分布式
  • 内容是按照元数据方式存储,而svn是按照文件的元信息
  • Git分支不是目录
  • Git没有全局版本
  • Git有加密算法,保证代码的完整性

git config配置

配置用户信息,查看配置信息,差异分析工具

git checkout:会用暂存区删除文件,工作区不会改变,覆盖或者是(切换分支)

克隆到指定的目录,可以使用以下命令格式:
git clone

Git 工作区、暂存区和版本库

  • 工作区:就是你在电脑里能看到的目录。

  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

    Git的基本操作

  • git reset 回退版本

  • git status 查看当前仓库的状态,显示有变更的文件

  • git diff 比较文件的不同,暂缓区和工作区

  • git rm 删除工作区文件

  • git mv 重新命名

  • git blame 以列表形式查看指定文件的历史修改记录

  • git fetch 从远程获取代码

合并冲突

  • 修改同文件不同处,rebase和merge合并不会冲突

  • 修改同文件同一处,合并会冲突,

  • 解决方式:

  • rebase,解决冲突,执行add+rebase continue;

  • merge,解决冲突,重新提交

    rebase和merge区别

    rebase:变基,合并分支后可以将分支走向的基准线变更,在分支很多的时候,可以简化分支的展示,本质是先取消自己的提交,临时保存,然后把当前分支更新到最新的origin分支,最后应用自己的提交

    merge: 会生成一个新得合并节点,保持修改内容的历史记录,但是历史记录会很复杂

五类主要分支

  • master分支只负责管理发布的状态。在提交时使用标签记录发布版本号。
  • develop分支是针对发布的日常开发分支。刚才我们已经讲解过有合并分支的功用。
  • feature分支针对新功能开发
  • release分支一般的开发是在develop分支上进行的,到了可以发布的状态时再创建release分支,为release做最后的bug修正。
  • hotfix分支是在发布的产品需要紧急修正时,从master分支创建的分支。