# git 基础

前言

git 是一个分布式的版本控制软件,git 的作用是管理代码,git 的特点:

# 1.配置

  • 增加配置列表

    git config --global zhou.name '123'
    
    1
  • 改配置列表

    git config --global --replace-all user.email "输入你的邮箱"
    git config --global --replace-all user.name "输入你的用户名"
    
    1
    2
  • 删配置列表

    git config --global --unset zhou.name
    
    1
  • 查看配置列表

    git config --list
    git config -l # 简写
    
    1
    2

    alt text

# 2.提交流程

工作区->暂存区->历史区->远程仓库 --这里默认为主分支

# 2.1 工作区-->暂存区

  • 初始化本地仓库(第一次提交要初始化本地仓库)

    git init
    
    1
  • 将工作区修改的内容添加到暂存区

    git add [文件名称] # 单个文件
    git add . # 整个目录
    git add * # 所有文件
    
    1
    2
    3

# 2.2 暂存区-->历史区

  • 将暂存区中修改的内容提交到历史区

    git commit [文件名称] -m '提交的注释' # 单个文件提交
    git commit -m '提交注释' # 全部文件提交
    
    1
    2
  • 没有添加 -m

    • i 进入编辑模式
    • :wq 保存并退出
    • :ql! 退出

# 2.3 操作

  • 创建文件

    touch [文件名称]
    
    1
  • 查看工作区和暂存区那些文件修改(红色),查看暂存区和历史区那些文件修改(绿色)

    git status -s
    
    1

    alt text

    git status
    
    1

    alt text

  • 查看工作区和暂存区内容差异

git diff
1

alt text

  • 查看工作区和历史区内容差异
git diff --cached
1
  • 查看历史区历史记录(如提交远程仓库记录)
git log
1

alt text

git log --oneline
1

alt text

  • 前看看是否有分支
git branch
1

# 3.代码回退

# 3.1 git 没有关闭

  • 回退所有区域(历史区、暂存区、工作区)
git reset --hard
1
  • 回退历史区和暂存区
git reset --mixed
1
  • 回退历史区
git reset --soft
1

# 3.2 git 关闭后

  • 查看历史区版本号
git reflog
1
  • 把历史区重置到
git reset --hard HEAD^ #  上一个提交
git reset --hard HEAD^^ # 上上个提交
git reset --hard HEAD@{编号} #  指定编号
1
2
3
  • 把历史区重置到指定版本
git reset --hard [编号]
1
  • 用历史区的内容覆盖暂存区的内容
git reset HEAD --[文件名称] 
git reset HEAD -- .
1
2
  • 用暂存区的内容覆盖本地工作区的内容
git checkout -- [文件名称] # 单个文件
git checkout -- . # 所有文件
1
2

# 4.分支提交

  • 有多个分支的情况:bug 分支、需求分支

  • 查看分支

git branch
1
  • 创建分支
git branch [分支名称]
1
  • 切换分支
git checkout [分支名称]
1
  • 合并分支(master 分支没有改动)
git merge [分支名称]
1
  • 删除分支
git branch -d [分支名称]
1
  • 创建分支并切换分支
git checkout -b [切换的分支名称]
1
  • 合并分支(master 分支有更改,和现有的分支冲突)
git merge [分支] # 出现冲突,代码中去解决冲突
git commit -m '分支合并'
1
2
  • 分支提交日志
git log --graph --oneline
1

# 5.暂存工作内容

  • 需求任务开发到一半,临时有一个紧急 bug 需要修复

  • 把当前的工作区和暂存区保存到一个地方,并且用最新的历史区覆盖当前的工作区和暂存区

git stash
1
  • 创建 bug 分支改 bug,提交后切换 master 分支合并
git merge bug
1
  • 列出所有的储存区
git stash list
1
  • 应用不删除
git stash apply
1
  • 删除
git stash drop
1
  • 应用删除
git stash pop
1

# 6.报错

  • 提交远程仓库报错

    fatal: remote origin already exists.
    
    1
    • 解决方法:删除历史区重新提交
  • ssh 使用公钥授权不通过的问题解决

    • 用命令行 push 提交直接输入密码