IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 关于git -> 正文阅读

[开发工具]关于git



?

二、Git版本控制工具

为什么要使用版本控制工具?【了解】

在公司中开发项目时通常是多人协同开发,经常会出现代码文件相互被覆盖、代码不同步、同一个文件在电脑中存在多份等情况,如果使用版本控制工具则上面这些问题都会被解决。

2.1 版本的概念

(1)初指一种书籍经过多次传抄而形成的各种不同本子。随着时代的发展,版本也开始应用于软件上。

(2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。如:CTS3.3.5、QQ 2021 Beta

各版本的时间轴演变,每一次版本的改变,都会有功能的改变。

2.2管理版本

2.2.1.传统管理方式

问题:传统管理方式造成了本地电脑上有很多相同的文件,不容易维护,造成了非常混乱的局面。

2.2.2 版本控制方式

介绍:

好处:使用版本控制以后,只需在本地保存一份,各个版本由版本控制软件来进行管理,常见的版本控制软件有git和svn。

2.3 git介绍

2.3.1 定义:

Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以高效地管理项目。

2.3.2 特点:

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

2.3.3 git的三个区域【重点】

  • 工作区:写代码的区域

  • 暂存区:如果某一个功能模块开发完成后可以将代码提交到暂存区中

  • 仓库区:当我们把整个功能模块开发完成后将暂存区中的代码提交到本地仓库中,这样可以产生一个版本号

2.4 安装步骤

2.4.1 下载

Git - Downloads

2.4.2 安装

一路回车

2.4.3 配置用户信息

描述:安装完Git 之后,需要设置自己的用户名和邮件地址。进行管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作

配置命令:

git config --global user.name xxx
git config --global user.email xxx
git config --list ? ?  // 查看git配置信息

注意:同一台电脑上面的git config命令只需要执行一次,执行完成的配置信息保存在:C:\Users\当前用户名.gitconfig文件中。

2.5 Git操作步骤

(1)使用git初始化项目

(2) 编写代码

(3) 把工作区添加到暂存区

(4) 把暂存区添加到仓库区

2.6 Git命令

git init:

使用git初始化项目,注意:同一个项目只需要初始化一次,初始化成功后会在当前项目目录中自动创建一个.git的隐藏目录,这个隐藏目录中的内容不需要我们手动修改

git add .或文件名及目录名称

将工作区中的代码提交到暂存区

git commit -m 备注信息

将暂存区中的代码提交到本地仓库

git status

查看git 状态

git log

查看git完整的日志[版本]信息

git log --oneline

查看git简短的日志[版本]信息

git reset --hard 版本号

git版本回退

git reflog

查看所有git日志[版本]信息,注意:当我们使用了git reset --hard进行版本切换后要使用git reflog来查看所有git日志信息。

2.7 文件忽略

2.7.1 介绍:

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

2.7.2 使用步骤:

第一步:在项目根目录中新建.gitignore文件;

第二步:在.gitignore文件中配置要忽略的文件或目录的规则;

2.7.3 常用配置规则:

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

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

(3) /git-demo1/a.html 过滤某个具体文件

2.8 分支

2.8.1 介绍:

git版本控制系统支持分支操作。可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

2.8.2 什么是主分支?

在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。我们把这个master 分支叫做主分支,主分支上的代码是功能好用、但不一定完整的代码。

2.8.3 主分支的问题:

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

2.8.4 分支解决的问题:

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

2.8.5 分支相关命令

git branch

查看git分支信息

git branch 分支名

创建分支

git checkout 分支名

切换分支

git merge 分支名

合并分支

注意:在合并分支时容易发生文件冲突。

什么是文件冲突?【重点】

当多个开发人员修改了同一个文件中的同一段代码时在合并到主分支时就发生文件冲突,文件冲突如下:

怎样解决文件冲突?【重点】

开发者自行手动解决文件冲突,也就是说要让开发者自己手动查看代码,然后手动处理发生冲突的代码,解决完文件冲突后再使用git add .及git commit -m 这些命令。

2.8.6 解决冲突

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

2.9 远程仓库

2.9.1 介绍:

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

2.9.2 远程仓库分类:

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

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

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

2.9.3 操作流程

注册

创建远程仓库

本地文件推送到远程仓库

克隆和同步远程仓库

2.9.4 相关命令

remote add 本地别名 远程仓库地址

给远程仓库地址起个别名

git remote -v

查看本地别名信息

git push [-u] 远程仓库地址/别名 本地分支名称

将本地仓库代码推送到远程仓库

注意:如果使用了git push -u参数后则下次可以直接使用git push命令来将本地仓库中的代码推送到远程仓库,而不需要带远程仓库地址及本地分支名称。

注意:同一个远程仓库中只能放一个项目的代码,而不能将不同项目的代码推送到同一个远程仓库中。

git clone 远程仓库地址

克隆远程仓库地址中的代码到本地电脑中

注意:同一个远程仓库中需要克隆一次。

git pull

拉取远程仓库中的代码到本地电脑中

注意:拉取在同一个项目中可以多次使用

2.9.5 SSH访问

简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。

SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。

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

生成密钥步骤

1、打开Git Bash

2、执行下面的命令来生成ssh密钥:

ssh-keygen -t rsa -b 4096 -C "你自己的邮箱"

注意:执行完上面的命令后连续敲击3 次回车即可;

3、将公钥放在远程仓库中:

1)单击码云网站上个人帐号头像然后选择“设置”菜单

2)单击左边的“安全设置”-->"ssh公钥":

3)输入生成的ssh公钥:

4、检查ssh认证是否成功:

ssh -T git@gitee.com

上面的步骤输入yes后看到类似于下面的提示信息,就表示认证通过:

5、绑定远程仓库的ssh地址到本地别名:

//语法: git remote add bendi  远程仓库的ssh地址
git remote add bendi ? git@gitee.com:best_coding/chongqing-web.git

6、推送本地仓库中的代码到远程仓库:

git push bendi  master

2.9.5.1相关命令

ssh-keygen

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

ssh:

验证远程仓库中的公钥配置是否成功:

ssh -T git@gitee.com

2.9.5.2配置ssh

2.9.5.3 使用ssh提交本地文件

2.9.6 Git与SVN区别

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

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

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-26 12:23:30  更:2021-10-26 12:23:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:03:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码