【Git】常用指令整理

1. 设置签名

1.1 项目级别/仓库级别

  • git config user.name xxx:设置用户名
  • git config user.email xxx:设置邮箱账号
  • 签名存放位置:./.git/config

1.2 系统用户级别

  • git config --global user.name xxx:设置用户名
  • git config --global user.email xxx:设置邮箱账号
  • 签名存放位置:~/.gitconfig

项目级别的优先级大于系统用户级别,如有项目级别则采用项目级别,如果没有项目级别,则采用系统级别,不允许两者都不存在的情况

2. 基础操作

2.1 添加

  • git add <file name>:将工作区文件添加到暂存区

2.2 提交

  • git commit -m "commit content" <file name>:将暂存区的文件,提交到本地仓库
    • commit content:提交的内容,由提交者填入

2.3 状态查看

  • git status:查看工作区、暂存区的状态

2.4 查询日志

  • git log:直接展示,详细展示

【Git】常用指令整理

  • git log --pretty=oneline:每条记录只显示一行,简洁

【Git】常用指令整理

  • git log --online:把上一种的哈希值缩短(进一步简洁)

【Git】常用指令整理

  • git reflog:在上一种的基础上,多了[email protected]{n},n代表移动到当前版本需要多少步

【Git】常用指令整理

2.5 版本切换

  • git reflog:先查询历史信息,获取到要转跳版本的索引值
  • git reset --hard <index>:输入索引值,切换到特定版本
  • 示例操作:
    • git reflog,查看提交了历史,确认要切换到fa8822a版本
    • 输入指令 git reset --hard fa8822a,git切换到特定版本
    • 通过 git reflog 指令验证

【Git】常用指令整理

2.6 git reset

  • git reset --soft <index>
    • 仅仅在本地库移动 HEAD 指针
  • git reset --mixed <index>
    • 在本地库移动 HEAD 指针
    • 重置暂存区
  • git reset --hard <index>
    • 在本地库移动 HEAD 指针
    • 重置暂存区
    • 充值工作区
      // todo 加图说明一下
      // 这里拉出来整理一下

2.7 文件比较

  • git diff <file name>:将工作区中的文件与暂存区进行比较
  • git diff <index> <file name>:将工作区里的文件与本地库某个历史版本进行比较
  • git diff:直接比较多个文件

3. 分支操作

3.1 创建分支

  • git branch <name>

3.2 查看分支

  • git branch -v

3.3 切换分支

  • git checkout <name>

3.4 分支合并

  1. git checkout <name>:切换到接受修改的分支(被合并)
  2. git merge <branch name>:执行merge,将要合并的分支进行合并

3.5 分支冲突

  1. 编辑文件,删除特殊符号
  2. 将文件修改到符合预期
  3. git add <file name>
  4. git commit -m "xxxx" 提交到本地仓库

4. 结合远程库的操作

4.1 创建远程库地址别名

  • git remote -v:查看当前所有远程地址别名
  • git remote add <alias> <remote address>:设置远程地址别名

4.2 克隆

  • git clone <remote address>
    • 将远程库下载到本地
    • 创建 origin 远程库别名
    • 初始化本地库

4.3 拉取

  • git pull <remote address> <remote branch>:将远程仓库某个分支拉取到本地
  • git pull == git fetch + git mergepull指令可以认为是执行了fetch指令与merge指令
    • git fetch <remote address> <remote branch>:拉取到本地
    • git checkout <local branch>:切换到本地的分支
    • git merge <remote branch>:将拉取到本地的远程分支,与原有的本地分支进行合并
  • 详解git pull和git fetch的区别

4.4 pull & clone 的区别

pull clone
概念 从远程服务器上克隆一个一模一样的版本库到本地,复制的是整个版本库(本地从无到有的过程) 从远程服务器获取一个分支的更新到本地,并更新本地库(同步更新内容到本地,并非从无到有)
仓库初始化 直接拉取工程,本地无需是仓库(会初始化仓库) 需要先初始化本地仓库
分支 clone获取的所有的分支 更新当前的分支
推送 可直接指定分支推送到远程 需通过remote add orgin指定源,才可进行push