Git详细解析

一、Git 工作区、暂存区和版本库

我们先来理解下 Git 工作区、暂存区和版本库概念:

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

二、Git 创建仓库

git init

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令

在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。

使用方法

使用当前目录作为 Git 仓库,我们只需使它初始化。

git init

该命令执行完后会在当前目录生成一个 .git 目录。 

使用我们指定目录作为Git仓库。

git init newrepo

初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。 

如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:

$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'

以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。 

注: 在 Linux 系统中,commit 信息使用单引号 ',Windows 系统,commit 信息使用双引号 "。

所以在 git bash 中 git commit -m '提交说明' 这样是可以的,在 Windows 命令行中就要使用双引号 git commit -m "提交说明"。

配置用户信息|初始配置

描述:安装完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 基本操作 

说明:

workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库

一个简单的操作步骤:

$ git init    
$ git add .    
$ git commit

git init - 初始化仓库。
git add . - 添加文件到暂存区。
git commit - 将暂存区内容添加到仓库中。

status 查看项目状态


log    查看历史提交记录
reset  回退提交的版本
reflog 查看所有提交记录

 回退历史版本

git总是有后悔药可以吃

git reset --hard 版本号

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

 四、Git 分支

介绍

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

什么是主分支?

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

主分支的问题

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

分支解决问题:

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

分支相关命令:

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

解决冲突

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

 五、远程仓库

介绍

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

远程仓库分类:

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

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

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

操作流程:

注册

创建远程仓库

本地文件推送到远程仓库

克隆和同步远程仓库

相关命令:

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

示例:(https)

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.com

解释:

检测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方式来提交仓库,则需要在账户中配置公钥(一个公钥对应一个私钥,若多人,需添加多个公钥)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值