Git 安装

https://git-scm.com/downloads

配置user信息

  1. git config --global user.name ''
  2. git config --global user.email ''

config 的三个作用域

  1. # 缺省等同于local
  2. git config --local # 只对某个仓库有效
  3. git config --global # 只对当前用户所有的仓库有效
  4. git config --system # 只对系统所有登录的用户有效
  5. 显示配置
  6. git config --list --local
  7. git config --list --global
  8. git config --list --system

建Git仓库

  1. 1. 将已有的项目纳入git管理
  2. cd project
  3. git init
  4. 2. 新项目直接用git管理
  5. git init xxxx # xxx 表示要被git管理的项目

往仓库里面添加文件

image.png

  1. git add .
  2. git commit -m "xxx" # xxx 表示本次修改的备注
  3. # 跳过暂存区
  4. git commit -am 'xxxx' # xxx 表示本次修改的备注
  5. # 仓库中的文件变更名
  6. mv read read.md
  7. git add read.md
  8. git rm read
  9. git status
  10. # 把暂存区清空
  11. git reset --hard
  12. # 查看提交日志
  13. git log
  14. # git 修改文件名
  15. git mv read read.md ---> 替换上面的3个步骤
  16. # gitk 查看当前项目的提交日志树
  17. git checkout -b xxxx1 xxxx2 # 创建分支 xxx1 新分支名 xxx2 以那个分支创建
  18. git log -n1 # 查看第一个提交
  19. git diff commit_id1 commit_id2 # 比较两个分支
  20. git diff HEAD HEAD^1 # HEAD和他的父亲比较 HEAD~1 也可以

.git文件目录结构

image.png
image.png

  1. git cat-file -t commit_id # 查看文件动作类型
  2. git cat-file -p commit_id # 查看文件提交信息
  3. git branch -av # 查看本地和远程分支

commit、tree和blob三个对象之间的关系

image.png

分离头指针的问题

image.png

image.png

  1. git强制覆盖:
  2. git fetch --all
  3. git reset --hard origin/master
  4. git pull
  5. git强制覆盖本地命令(单条执行):
  6. git fetch --all && git reset --hard origin/master && git pull