测试基础知识-Git

image

 Git是一个免费开源的分布式版本控制系统,旨在快速高效地处理从小型到大型的所有项目。

  • 版本控制系统、Version Control System:记录对文件(通常是代码)的每一次修改,可以随时回退到任何一个历史版本
  • 分布式:每个参与项目的人电脑上都有一个完整的版本库,包含了所有的历史记录。(可以在本地工作,无需联网,等需要时再与其他人同步)
    • 集中式版本控制系统:subversion\SVN,版本库集中放在中央服务器(需联网,从中央服务器获取版本库)
  • 基于Git实现的远程仓库托管服务平台:GitHub / GitLab / Gitee
    • 修改 hosts 文件 解决GitHub访问慢:https://github.com/521xueweihan/GitHub520
    • New merge request:发出请求合并代码到指定分支
    • Reporter:只能克隆、不能提交代码
    • Developer:能提交代码

核心概念

  • 仓库(Repository): 被 Git 管理起来的文件夹,Git 能跟踪里面所有文件的修改、删除
    • 远程仓库(Remote Repository): 托管在网络(如 GitHub, Gitee)上的版本库
  • 工作区(Working Directory): 电脑上的项目文件夹
  • 暂存区(Staging Area): 一个中间区域,临时保存文件的改动(将本地文件的改动转化为Git对象)
  • 提交(Commit):将暂存区的内容正式保存到版本库中,生成一个快照。
    • 每次提交都有一个唯一的Commit ID(revision hash:SHA-1算法生成哈希值)
    • 比如"998622294a6c520db718867354bf98348ae3c7e2",取缩写使用即可(998622)
  • 分支(Branch): 一个独立的代码库,本质是指针(指向某一次特定的提交)
    • HEAD指针:指向本地当前所在分支最新的提交
      • 引用(reference):提交的别名,指向具体的提交
    • 主分支(main/master):发布正式版本
    • 功能分支(feature):用于开发新功能
    • 修复分支(hotfix):用于修复生产环境中的紧急问题
  •  标签(Tag):用于标记一个特定的提交,通常是一个发布点或者版本的里程碑

 

安装&配置Git

  • Windows添加Path环境变量:C:\Users\wei.feng\Desktop\portable\PortableGit\bin
  • 查看配置:git config --list
  • 配置Git全局的用户名:git config --global user.name "wei.feng"
  • 配置Git全局的邮箱:git config --global user.email "wei.feng@xxx.com"

image

  •  生成ssh秘钥:ssh-keygen -t rsa -C  "wei.feng@xxx.com"、三次Enter
    • 三次Enter:存放路径(默认为C:\Users\用户名\.ssh目录)、设置私钥密码(空)、确认密码(Yes)
  • 远程代码托管平台中添加公匙:

image

  • 测试配置的SSH密钥是否生效:ssh -T git@gitlab.com
  • ~/.ssh/known_hosts:记录已经连接过的服务器的公钥(每次连接时用公钥来验证服务器的身份)
    • 比较 服务器出示的公钥与本地 known_hosts 文件中记录的公钥
    • 内容组成:服务器域名/IP+SSH密钥算法+公钥

image

 

常用的 Git 命令

git init 在当前目录初始化一个新的 Git 仓库
git status 查看工作区和暂存区的状态
git log 查看提交历史
git clone <url>

下载一个远程仓库到本地

  • 默认克隆master分支:-b 可指定克隆分支
  • 克隆后自动关联远程仓库(默认名为origin)
  • 查看关联的远程仓库:git remote -v
git add <filename>

将指定文件的修改添加到暂存区

  • git add . :将所有修改添加到暂存区
git commit -m "提交信息"

将暂存区的内容提交到仓库,并附上说明

  • git commit -am "说明":把工作区跟踪过且有变化的文件提交到本地仓库
    • 有修改才能提交
git diff HEAD xxx.txt 将工作区的xxx.txt 与 本地仓库中的最新提交的xxx.txt进行比较

 

git branch

查看所有分支

git checkout -b <branch_name> 创建并切换到一个新分支
git merge <branch_name> 将指定分支合并到当前分支(会生成新的提交)
  • git rebase:变基合并(不会生成新的提交、提交树是一条直线)
git pull  从远程仓库获取更新&合并到本地
  • git fetch:获取到本地
  • git merge:合并到本地
git push 将本地提交推送到远程仓库

 

工作流程

 640

  • git clone\git pull:获取最新代码
  • 修改文件
  • git add:添加到暂存区
  • git commit:提交到本地参仓库
  • git pull:获取最新代码,看是否有冲突
    • 冲突产生原因:不同人对文件的同一个地方进行了修改,其中一个提前提交合并了;另外一个再提交合并就会产生冲突。

    • 解决冲突:按实际需要、沟通后确定保留的内容
  • git push:推送代码到远程仓库
posted @ 2025-11-25 11:29  Fēngwèi  阅读(11)  评论(0)    收藏  举报