git
学习极客时间的笔记,一些常用的命令及解决办法
简介
vsc出现之前的情况
用目录拷贝区别不同版本
公共文件容易被覆盖
成员沟通成本很高,代码继承效率低下
集中式vcs
有几种的版本管理服务器
具备文件版本管理和分值管理能力
继承效率有明显地提高
客户端必须时刻和服务器相连
分布式vcs
服务器和客户端都有完整的版本库
脱离服务端,客户端张扬可以管理版本
查看历史和版本比较等多数操作,都不需要访问服务器,比集中式vsc更能提高版本效率
git特点
最优的存储能力
非凡的性能
开源的
很容易做备份
支持离线操作
很容易定制工作流程
使用git之前的配置
配置user信息
git config --global user.name jim
git config --global user.email 326695231@qq.com
config的三个作用域
git config --local # 只对某个仓库有效
git config --global # 对当前用户所有仓库有效
git config --system # system 对系统所有登陆的用户有效
显示config的配置, 加 --list
git config --list --local
git config --list --global
git config --list --system
建Git仓库两种场景:
把已有的项目代码纳入Git管理
cd 项目代码所在的文件夹
git init
新建的项目直接用Git管理
cd 某个文件夹
git init your_project # 会在当前路径下创建和项目名称同名的文件夹
cd your_project
往仓库里添加文件
git add files
git commit
git add -u # 将当前修改的文件全部放入暂存区
给文件重命名的简便方法
正常文件重命名方式
mv demo demo_rename
git rm demo
git commit
简便方法
git mv readme readme.md
通过gitlog查看版本演变历史
git log
–oneline
–n4 # 最近四次
–all # 所有分支的版本信息
–graph # 图形化界面
分支
git branch -v
git checkout -b temp 415c5c80…
探究.log目录
HEAD: 存储着正在工作的分支的refs
config: config信息
refs/heads: 分支
refs/heads/master: 文件存储的是分支master指针
refs/tags: 设置分支标记,比如该分支为某个重要版本。里面的文件存储的是tag的指针
objects/: 文件内容的指针信息
objects/pack: 如果objects/下文件太多,就打包到pack中
数据类型: tree, blob
git cat-file -t 59a4b3 # 查看该指针对象类型
git cat-file -p 59a4b3 # 查看对象内容