成都网站搭建公司,博客网,在东莞找工作上哪个网站,大兴黄村网站建设文章目录 Git基础1. 简述1.1 版本管理演变1.2 Git的特点 2. Git安装2.1 安装文档2.1 配置user信息 3. 创建仓库3.1 场景3.2 暂存区和工作区 4. 重命名5. 常用git log版本历史5.1 查看当前分支日志5.2 简洁查看日志5.3 查看最近指定条数的日志 6. 通过图形界面工具查看版本7. 探… 文章目录 Git基础1. 简述1.1 版本管理演变1.2 Git的特点 2. Git安装2.1 安装文档2.1 配置user信息 3. 创建仓库3.1 场景3.2 暂存区和工作区 4. 重命名5. 常用git log版本历史5.1 查看当前分支日志5.2 简洁查看日志5.3 查看最近指定条数的日志 6. 通过图形界面工具查看版本7. 探秘.git目录7.1 .git文件目录7.2 HEAD文件7.2 config文件7.2 refs文件7.3 object文件* 8. commit/tree/blob三个对象关系8.1 Git对象关系 9. 分离头指针情况下的注意事项 Git基础
1. 简述
1.1 版本管理演变 1.2 Git的特点
最优的存储能力非凡的性能开源很容易做备份支持离线操作很容易定制工作流程
2. Git安装
2.1 安装文档
参照官方文档 Git官方文档
2.1 配置user信息 配置user信息是为了在代码review或者变动产生时,进行邮件的提醒 配置user.name git config --global user.name ‘your_name’ 配置user.email git config --global user.email ‘your_emaildomain.com’ config的三个作用域
3. 创建仓库
3.1 场景
把已有项目代码纳入Git管理 $ cd 项目代码所在文件夹 $ git init 新建的项目直接用Git管理 $ cd 某个文件夹 $ git init your_proiect # 会在当前路径下创建和项目名称同名的文件夹 $ cd your_project 查看当前git暂存区git状态 git status 查看当前git日志 git log git add 文件名称 git commit -m’对添加文件的描述’ 3.2 暂存区和工作区 在工作目录上的修改的变更Git会先添加到暂存区暂存区的信息可以覆盖本地的工作目录同时也可以提交到历史版本中 文件复制 cp 源文件路径 复制后新文件名称 4. 重命名
清除暂存区工作区信息 git reset --hard 重命名 git mv 需要变更的文件名 变更后的文件名 eg: git mv readme readme.md // 将readme重命名为readme.md 5. 常用git log版本历史
5.1 查看当前分支日志 git log 5.2 简洁查看日志 git log – oneline 5.3 查看最近指定条数的日志 git log -n 1 #查看最近1条日志 这里可以搭配 --oneline使用 git log -n 1 --oneline 查看本地分支 git branch -v 创建分支 git checkout -b branch_name #创建一个新的分支并切换到该分支 这个命令相当于以下两个命令的组合 git branch branch_name # 创建一个新分支 git checkout branch_name # 切换到新分支 当运行git checkout -b branch_name时Git会在当前提交的基础上创建一个新的分支并将HEAD指向该分支 查看所有分支的日志 git log --all 会显示所有分支的提交历史。这包括本地分支和远程分支。 git log --all --graph #图形化显示演进历史 6. 通过图形界面工具查看版本 gitk #弹出并显示图形界面 7. 探秘.git目录
7.1 .git文件目录 7.2 HEAD文件 通过 cat HEAD命令打开HEAD文件显示信息如下: HEAD是一个文本文件内容这是一个引用当分支发生切换时HEAD的内容会发生变化 7.2 config文件
通过 cat config查看文件信息如下 这里会记录和本地仓库相关的配置信息 7.2 refs文件
通过 cd refs切换值refs文件夹,查看里面内容为: refs中存在tags和heads意味着git仓库可以有很多tag标签里程碑和多个分支heads heads中记录所有的分支信息 heads中内容记录了分支的信息查看单个分支文件内容发现其中记录的是分支的指针指向哪个commit
查看文件类型 git cat-file -t 文件名 查看文件内容 git cat-file -p 文件名 7.3 object文件*
object中存放的是多个文件夹和pack松散文件的打包体info信息 进入到其中任一普通文件夹文件中记录的是一个hash值将文件将的名称hash拼接在一起通过类型查看命令可以发现其类型为tree。
查看tree文件信息发现内部有blob对象
8. commit/tree/blob三个对象关系
8.1 Git对象关系 一个commit只对应一个tree这个tree中存放的是当前commit对应的视图这个视图存放了快照集合这个集合是存放了当前commit对应的本项目仓库的所有文件和文件夹的快照 tree中还可以包含tree和bolb,类似于文件夹中包含文件夹和文件 git中如果文件内容相同那么他们所对应的blob是相同的 9. 分离头指针情况下的注意事项
分离头指针指的是当前正工作在没有分支的状态下编写的文件依然可以commit但是并不会挂在任何一个分支下如果这时候再切换分支那么在分离头指针状态下的提交代码很可能会被当成垃圾被Git清理掉。 如果日常工作中对代码做一些尝试性编辑并不打算保存那么分离头指针就有了很好的用处。