- git-init 初始化仓库
- 使用git进行版本管理之前 需要首先初始化仓库 Git是使用git init进行初始化的 实际建立一个目录 并且进行初始化目录
- mkdir git-tutorial
- cd git-tutorial
- git init
- 查看仓库的状态
- 工作树和仓库在工作过程中会不断发生变化 Git操作中常使用git status 命令进行查看状态
- git status
- Commit(提交):是指记录工作树中的所有文件的当前状态
-
- 尚没有可提交的内容说明我们建立的这个仓库中还没有记录任何文件的状态
- git add 向暂存区中添加文件
-
- 要想让文件称为Git仓库的管理对象 需要首先用git add命令将其加入到暂存区(Index或者Stage)中
- touch README.md 首先利用命令touch产生文件readme.md
- git add README.md
- git status
- 注意:这个时候如果不想继续执行添加操作 但是已经把文件添加尽了暂存区 这个时候可以执行如果命令执行删除操作 将加入暂存区中文件删除
-
- git rm --cached <file>
- git commit 保存仓库中的历史记录
-
- 个人理解是工作数中的暂存区中的内容
- git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。
- 记述一行提交信息
- git commit -m "First commit" -m参数后的“First commit”称为提交信息 是对这个提交的概述
- git log 查看提交日志
-
- 可以查看往仓库中提交的日志 包括可以查看什么人在什么时候进行了提交与合并以及提交前后有什么样的差别
- git log
- 如果只想要程序显示第一行简述信息 可以如下执行:
git log --pretty=short
- 如果只想显示指定的目录和文件的日志
- git log <filename>或者<dirname>
- 如果想要显示文件改动前后的差别 可以加上参数-p 文件前后的差别就会显示在提交信息之后
- git log -p README.md
- git diff 查看更改前后的差别
-
- git diff命令可以查看工作树 暂存区 最新提交之间的差别
- 查看工作树和最新提交的差别
-
- 在使用git add命令后 工作树和暂存区之间并没有太大的区别执行git diff并不会显示什么 要查看与最新提交之间的差别 可以执行下面的命令
- git diff HEAD HEAD指向当前分支中最新一次提交的指针
- 分支操作
-
- 在进行多个并行作业时 我们会用到分支 在这类的并行开发过程中 往往同时存在多个最新的代码状态
-
- git branch 显示分支一览表
-
- 可以将分支名列表显示 同时可以确认当前所在分支
- git branch
- git checkout -b 创建 切换分支
-
- 如果想以当前的master分支为基础创建新的分支 我们需要用到git checkout -b命令
- git checkout -b
- 切换到分支feature-A分支并进行提交
-
- 执行下面的命令创建名为feature-A的分支
- 在新创建分支的时候就已经执行了切换操作
- git checkout -b feature-A
- 或者是下面两条语句是相同的效果
- git branch feature-A
- git checkout feature-A
- 培育分支:不断对一个分支进行提交操作
- 切换回到master分支
- git checkout master
- 切换回到上一个分支
- git checkout - 使用连字符代替上一个分支名称
- 特性分支:集中实现单一特性(主题),除此之外不进行任何的作业的分支
-
- 日常开发中往往会创建数个特性分支,同时在此之外在保留一个随时可以发布软件的稳定分支
- 稳定分支的角色通常由master分支担当
- 基于特定主题的作业在特性分支中进行,主体完成后再与master分支合并
- 只要保证这样的一个开发流程 就能保证master分支可以随时工人查看
- 主干分支:是之前我们讲解的特新分支的原点,也是合并的终点
-
- 通常人们会用master分支作为主干分支
- 主干分支中并没有开发到一半的代码 可以随时供他人查看
- 拥有多个版本发布时 主干分支也有多个
- git merge 合并分支
-
- 我们假设feature-A已经实现完毕了 想要将他合并到主干分支master中 首先切换到master分支中
- git checkout master
-
- 然后合并feature-A分支 为了在历史记录中明确记录下本次分支合并,我们需要创建合并提交 因此需要在合并时加上--no-ff参数
- git merge --no-f feature-A
- git log graph 以图表形式查看分支(务必记住)
- git log --graph
- 更改提交的操作
-
- 如何在实现功能后进行提交 累计提交日志作为历史记录 借此不断培育一款新的软件
- git的另外一个优势就是控制历史版本 借助分散仓库的优势 在不影响其他仓库的情况下 可以对历史版本进行操作。