Git的自我了解知识点

定义:

Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。

特点:

项目越大越复杂,协同开发者越多,越能体现出Git 的高性能和高可用性!并且git有 3个区域

  • 工作区

  • 暂存区

  • 仓库区

软件版本管理工具

场景描述:开发的一个项目,从开发工具到在线发布,经历了如下的流程:

描述:安装完Git 之后,需要设置自己的用户名和邮件地址。进行管理的时候,Git

需要使用这些基本信息,来记录是谁对项目进行了操作

配置命令:

git config --global user.name 'xxx'
git config --global user.email 'xxx'

 效果图如下

命令说明:
命令1:添加了全局配置
语法:添加了一个Git全局配置,指定开发人员的名称是谁
作用:以后多人协同开发时,需要通过user.name查看某行代码是哪个开发人员编写的
git     config   --global    user.name   “jack”
主命令    配置     全局的		用户的.名称    "自己的名称"

作用:和user.name共同确定一个开发人员的信息[邮箱配置]
git     config   --global   user.email '107821300@qq.com'

命令2:查看配置信息
语法:查看所有配置信息
git config --list
             列表

语法:按照条件过滤,查看指定的配置信息
git config --list     |         findstr '关键词'
   查看所有配置   管道符-传递数据 从前面的数据中查询包含关键词的数据

Git命令和常规操作

init   git管理初始化
add    工作区文件添加到暂存区
	git add 文件名    将指定的文件添加到暂存区
	git add .        将工作区所有的文件添加到暂存区
	git add *        将工作区所有的文件添加到暂存区
commit 暂存区文件添加到仓库区
	git commit -m '提交的描述'
status 查看项目状态
log    查看历史提交记录
reset  回退提交的版本
reflog 查看所有提交记录

回退历史版本

git永远都是有后悔药,可以在你创建git之后无限次的撤回和更改

git reset --hard 版本号

版本号说明:
1) HEAD^ 上一个版本  HEAD^^  HEAD^^^ ....
2)版本号(可以通过reflog来查看操作历史记录,然后使用版本号的前7位即可),例如:git reset --hard 227e72c

文件忽略 

对于无需使用git进行管理的文件或文件夹内使用此文件进行配置

使用步骤:

(1)在.git的同级目录下创建 .gitignore文件,注意:前面有一个

(2)在文件中添加要忽略的文件名称或文件夹名称

常用配置规则:

(一条规则一行)

(1) /git-demo1/ 过滤整个文件夹

(2) *.txt 过滤所有.txt文件

(3) /git-demo1/a.html 过滤某个具体文件(保证路径正确无误)

分支

介绍

git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。默认只有一个分支为master主分支。

什么是主分支?

在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支

主分支的问题

在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发

分支解决问题:

master用来保存和记录整个项目已完成的功能代码。但是不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃。

分支相关命令:

branch
	语法:git branch 
	作用:查看已有分支列表
branch 分支名 
	语法:git branch 分支名
	作用:创建一个指定名称的分支
checkout
	语法:git checkout 分支名
	作用:切换不同的分支
merge
	语法:git merge 分支名
	作用:将指定名称的分支合并到当前分支
基础的分支(主分支) 

 $git branch

*master

增加分支

切换分支
 合并分支

 (合并打印master文档增加,切换到分支文档减少)

解决冲突

介绍:如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法合并它们。 我们需要打开这些包含冲突的文件然后手动解决冲突。

远程仓库

介绍

Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。

远程仓库分类:

(1)github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响

(2)gitee:gitee是一个基于git的代码托管平台,国内使用频率较多

(3)公司自己部署,了解即可,强调不是前端人员部署的,使用步骤和命令都一样

操作流程:

注册

创建远程仓库

本地文件推送到远程仓库(删除本地git)

克隆和同步远程仓库(弹出密码框成功)()

相关命令:

remote add     把远程仓库地址添加到本地。使本地仓库和远程仓库产生关联 
remote -v      查看远程地址信息
push
			   1、如果使用-u参数,则第2次及以后可以直接使用git push把本地推送到远程仓库
			   2、添加gitee的账号和密码,正确则正常推送
clone          拷贝一个远程仓库到本地。
pull
			   当本地已有远程仓库,而远程仓库如果已经有更新,则可以使用此命令更新本地仓库。
			   例如:下班git push,早上上班 git pull

示例:(https)(origin随别写)

1)将远程仓库地址添加到本地:
git remote add origin https://gitee.com/dillionf/demo20211207.git
2)将本地仓库数据推送到远程仓库
git push -u origin master

注意:origin为远程仓库的名称,可以自定义
3)拷贝一个远程仓库到本地
git clone https://gitee.com/lyt-top/vue-next-admin.git

4)git pull --rebase origin master  从远程服务器更新项目到本地仓库

 其它命令:

git remote rm origin 删除远程仓库地址

注意:

1)在使用pull命令从远程服务器拉去项目内容时,要保证本地仓库的版本低于远程服务器

2)运行 git pull 通常会从远程服务器上抓取数据并自动尝试合并到当前所在的分支。

SSH访问

简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。

SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。

生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击3 次回车

相关命令

ssh-keygen

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

解释:生成公钥和密钥。特殊说明:会生成在C:\Users\用户名文件夹.ssh目录中。

ssh
ssh -T git@gitee.co

检测Github 的SSH key 是否配置成功。图示:6-15检查SSH是否配置成功

配置ssh:

(1)使用记事本打开id_rsa.pub文件,复制里面的文本内容

(2)登录gitee,点击头像-> 设置-> 安全设置:SSH公钥 -> 添加公钥

(3)将id_rsa.pub 文件中的内容,粘贴到公钥 对应的文本框中

(4)在Title 文本框中任意填写一个名称,来标识这个Key 的所有者是谁

注意:

1)若需要通过https的方式访问别人的public开源库,则可以通过输入用户名、密码的方式来完成提交(但一定要保证本地账户凭据与远程一致,若不一致,则使用下面步骤来修改)。

步骤:控制面板-用户账户-管理Windows 凭据-修改普通凭据即可

2)若使用SSH方式来提交仓库,则需要在账户中配置公钥(一个公钥对应一个私钥,若多人,需添加多个公钥)

Git和SVN的区别

SVN

SVN:SVN是一个开放源代码的集中式版本控制系统,用于多个人共同开发同一个项目,实现共享资源。集中式版本控制系统:版本库是集中存放在中央服务器,开发者需要先从中央服务器获取最新的版本文件,然后开始干活,最后再把自己修改的文件推送到中央服务器。

Git

Git:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,联网开发不是必须的。但两两开发者之间肯定不会以qq或U盘形式传送,也有一台充当“中央服务器”的电脑(gitee和github)。此服务器的作用仅是用来方便“交换”各开发之间的修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值