Git

164 阅读3分钟

Git

这是我参与8月更文挑战的第1天,活动详情查看: 8月更文挑战

什么是版本控制?

版本控制是指对软件开发过程中各种程序代码、说明文档等文件的变更进行管理,它将追踪文件变化,记录文件的变更时间、变更内容、甚至变更执行人进行记录,同时对每一个阶段性变更(不仅仅只是一个文件的变化)添加版本编号,方便将来进行查阅特定阶段的变更信息,甚至是回滚。

安装

  • 下载安装:git-scm.com/
  • 查看是否安装成功:git --version 输出版本号信息表示安装成功

配置

  • 当安装完Git应该做的第一件事就是设置你的用户名称与邮件地址
git config user.name "你的姓名"
git config user.email "你的邮箱"
  • 全局配置加上--global
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"
  • 检查配置
# 所有配置
git config --list
# 指定配置
git config user.name

初始化仓库

在需要版本控制的项目目录下 git init

git init
# 该命令会创建一个.git的子目录,这个子目录下包含了初始化git仓库所有必须文件,不可轻易改动

区域

  • 工作区
  • 暂存区
  • 仓库

git.jpg

git常用命令

  • git status 追踪文件状态

    • 已修改(modified)
    • 已暂存(staged)
    • 已提交(committed)
    • 未追踪(Untracked)
  • git add :将工作区代码添加到暂存区

  • git commit -m :将暂存区代码提交到本地仓库,每次提交时会生成一个hash值为本此版本提交的唯一id

    • git commit --amend -m 在不增加一个新的提交版本的情况下将新修改的代码追加到前一次的提交中

    • commit msg提交规范---在commit msg前添加对应前缀,例:git commit -m 'update 接口参数调整'

      feat 增加新功能   
      update 修改功能     
      fix 修复问题/BUG 
      style 代码风格相关无影响运行结果的 
      perf 优化/性能提升 
      refactor 重构 
      revert 撤销修改 
      test 测试相关 
      docs 文档/注释 
      chore 依赖更新/脚手架配置修改等 
      workflow 工作流改进    例如workflow 全组件英文改造 
      ci 持续集成 
      types 类型定义文件更改 
      wip 开发中
      
  • git restore --staged/--cached :将文件从暂存区重置到工作区

  • git reset 重置文件

    • git reset --soft 将文件从本地仓库重置到暂存区
    • git reset --mixed 将文件从本地仓库重置到工作区
    • git reset --hard 将文件从本地仓库重置到上一个版本(此次所有修改将被清空)
  • git push 将文件从本地仓库推至远程仓库

  • git pull 将文件从远程仓库拉取到本地

  • 分支

    • git branch

      • git branch 创建分支
      • git branch 查看本地分支
      • git branch -a 查看所有分支
      • git branch -r 查看远程分支
      • git branch -d 删除对应分支 不能删除未合并分支
    • git checkout

      • git checkout 切换分支
      • git checkout -b 创建并切换到新分支
  • git merge 合并指定分支到当前分支上

  • git clone 拉取远程仓库项目

  • git remote

    • git remote -v 查看本地仓库关联的远程仓库
    • git remote add 添加远程仓库
    • git remote rm 移除远程仓库

忽略文件 .gitignore

项目中某些文件不希望纳入Git管理,我们可以新建一个.gitignore文件来列出不需要Git管理的文件