测试基础知识-Git

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):用于修复生产环境中的紧急问题
- HEAD指针:指向本地当前所在分支最新的提交
- 标签(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"

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

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

常用的 Git 命令
| git init | 在当前目录初始化一个新的 Git 仓库 |
| git status | 查看工作区和暂存区的状态 |
| git log | 查看提交历史 |
| git clone <url> |
下载一个远程仓库到本地
|
| git add <filename> |
将指定文件的修改添加到暂存区
|
| git commit -m "提交信息" |
将暂存区的内容提交到仓库,并附上说明
|
| git diff HEAD xxx.txt | 将工作区的xxx.txt 与 本地仓库中的最新提交的xxx.txt进行比较
|
| git branch |
查看所有分支 |
| git checkout -b <branch_name> | 创建并切换到一个新分支 |
| git merge <branch_name> | 将指定分支合并到当前分支(会生成新的提交)
|
| git pull | 从远程仓库获取更新&合并到本地
|
| git push | 将本地提交推送到远程仓库 |
工作流程

- git clone\git pull:获取最新代码
- 修改文件
- git add:添加到暂存区
- git commit:提交到本地参仓库
- git pull:获取最新代码,看是否有冲突
-
冲突产生原因:不同人对文件的同一个地方进行了修改,其中一个提前提交合并了;另外一个再提交合并就会产生冲突。
- 解决冲突:按实际需要、沟通后确定保留的内容
-
- git push:推送代码到远程仓库
本文来自博客园,作者:Fēngwèi,转载请注明原文链接:https://www.cnblogs.com/fengwei-blogs/p/19267595

浙公网安备 33010602011771号