Git工具

一.Git概述

1.1 Git的应用场景

备份:Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取。

代码还原:

Git在管理文件过程中会记录日志,方便回退到历史版本。

Git除了可以帮我们保存代码,还可以保存每次上传的痕迹,每上传一次就做一次备份,上传

3次就备份3次,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一

个版本对应的内容,这样就可以随时恢复到之前任意上传时间对应的状态了。

协同开发:

每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传

的代码下载到自己的电脑上,这样就实现了代码共享

追踪信息

Git提供了强制记录日志的功能,每次上传信息要求书写日志,可以记录本次上传的相关信

息。比如本次上传的内容,对应的说明,等等。这样出了问题就可以进行信息追踪。

1.2 Git简介

Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管

理。通过Git 仓库来存储和管理这些文件,Git 仓库分为两种:

本地仓库:开发人员自己电脑上的 Git 仓库
远程仓库:远程服务器上的 Git 仓库

commit:提交,将本地文件和版本信息保存到本地仓库

push:推送,将本地仓库文件和版本信息上传到远程仓库

pull:拉取,将远程仓库文件和版本信息下载到本地仓库

1.3 版本控制器的方式

集中式版本控制工具

集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从

中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交

到中央版本库。例如:SVN和CVS

分布式版本控制工具

分布式版本控制系统没有"中央服务器",每个人的电脑上都是一个完整的版本库,这

样工作的时候,无需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各

自的修改推送给对方,就能互相看到对方的修改了。我们使用Git并且有个中心服务

器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一

样的。例如:Git

二.Git下载与安装

下载地址:https://git-scm.com/download

双击直接安装【版本为64位系统的】

右键任意位置,在右键菜单里选择Git Bash Here即可打开Git Bash命令行终端。

在Git Bash终端里输入git --version查看git版本,如图所示,说明Git安装成功

三.Git相关概念

工作区 :主要用于存放开发的代码,一个文件夹通过git init 设置成一个git可以管

理的文件夹时,这个文件夹里的内容(除去.git文件夹)就是工作区。
版本库 :就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中

HEAD指向最新放入仓库的版本。就是工作区有一个隐藏目录 .git,它不算工作

区,而是 Git 的版本库。
暂存区 :英文叫 stage 或 index。是用来暂时存放工作区中修改的内容,可以理

解为一个中转站。

四.Git本地操作命令

4.1 设置用户签名

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每

次Git提交都会使用该用户信息。在Git 命令行中执行下面命令:

设置用户信息

git config --global user.name 用户名
git config --global user.email 邮箱

查看配置信息
git config --list

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够

看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法

提交代码。

注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任

何关系。

4.2 Git本地操作-初始化工作区

*在任意目录下创建一个空目录(例如repo1)作为我们的工作区

*进入这个目录中,点击右键打开Git bash窗口

*执行命令git init

*如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明工作区创建

成功

*查看状态:我们在learnA目录中创建一个readme.txt文件,通过git status命令

来查看它的状态。

红色代表当前没有提交到暂存区

4.3 Git本地操作-add与commit

*编辑readme.txt

vim 文件名---按字母i插入数据---按esc退出---按 :wq保存退出。

查看文件内容:cat 文件名

工作区提交暂存区

git add 命令的作用是将文件的修改加入暂存区,命令格式:git add fileName

这时文件变成绿色,可以提交到本地仓库

暂存区提交本地仓库

命令:git commit -m '第一次提交'

说明:-m 后面跟随的是为你提交的备注,m是单词message信息的首字母

扩展

添加多个文件 git add [file1] [file2] ...

添加指定目录到暂存区,包括子目录 git add [dir]

添加当前目录下的所有文件到暂存区,不包括被删除的文件 git add

.

4.4 Git本地操作-差异比较

使用vim命令,对readme.txt文件进行编辑,添加"第二行代码"

工作区与暂存区比较

命令:git diff readme.txt

工作区与本地库比较

命令:git diff HEAD readme.txt

暂存区与本地库比较

命令:git diff --cached readme.txt

可以第二次提交到暂存区和本地仓库,进行差异比较

4.5 Git本地操作-版本回退

当我们从暂存区提交到本地仓库时,发现当前的提交的版本有问题,希望回退到指定

版本如何操作呢?

*使用vim命令编辑readme.txt,添加"第三行代码",并提交到本地仓库

我们可以通过git提供的查看日志命令来查看提交的日志

命令: git log 查看当前提交日志

通过 git log 命令查看日志,可以发现每次提交都会产生一个版本号,提交时设置的

message、提交人、邮箱、提交时间等信息都会记录到日志中

可以发现,目前为止,我们已经在本地仓库中提交了3次,也就是说有3个不同版本。

其中,最近的这个版本有一个标示:HEAD-> master 这就是标记当前分支的当前版

本所在位置。

在log中,每一个版本的前面,都有一长串随即数字 ,这是每次提交的commit id ,

这是通过SHA1算法得到的值,Git通过这个唯一的id来区分每次提交

git log命令存在的问题,只要版本回退之后就没法看到之前的日志了,git reflog命令

叫查看引用日志,可以看到整个过程的日志。

回退到之前版本

命令:git reset --hard HEAD^

回归到上一个版本,Git通过HEAD来判断当前所在的版本位置。那么上一个版本,就用

HEAD^标示,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过

来,所以写成HEAD~100。

我们可以在查看一下日志 git log

发现只有两个版本,我们在查看一下文件内容

查看引用日志

命令: git reflog 查看所有操作

回退到指定版本

命令:git reset --hard 版本号 回退到指定版本

查看文件内容

4.6 Git本地操作-修改撤消

当我们工作区内容想要提交到暂存区时,突然发现有问题,想要撤销该如何处理?当

我们已提交到暂存区的内容,发现出现了bug,这时又应该如何处理哪

*编辑readme.txt添加"第四行代码"

使用git status 命令查看当前状态

在你提交到暂存区前,你突然发现这个修改是有问题的,你打算恢复到原来的样子。

怎么办?

*撤销工作区修改

命令:git checkout 文件名称

我们撤销后,在查看文件中内容,发现工作区内容已经撤销,并查看状态,发现状态

很干净。

使用 vim 命令 编辑readme.txt添加"第五行代码"

使用git add提交文件至暂存区

*撤销到工作区

命令:git reset HEAD readme.txt 撤销到工作区

工作区撤销

我们在查看文件,发现已经恢复到最初始样子

五.Git 分支操作

5.1 分支操作-分支介绍

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单

独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己

分支的时候,不会影响主线分支的运行。分支可以简单理解为副本,一个分支就是一

个单独的副本。

5.2 分支操作-分支创建与切换

查看分支

查看分支命令:git branch

通过git init 命令创建本地仓库时默认会创建一个master分支。

分支创建

创建分支命令格式:git branch 分支名称

分支切换

切换分支命令格式:git checkout 分支名称

编辑readme.txt,添加"我是dev提交的代码"

提交到本地库

切换到master分支,并查看文件内容

5.3 分支操作-分支合并与删除

分支合并

命令: git merge 分支名

注意:当前我们是在master分支。合并后,我们发现master分支上的readme.txt文

件内容已经改变。

分支删除

命令: git branch -d 分支名

例如:我要删除分支名为dev的分支

六.Git代码托管服务

Git中存在两种类型的仓库,即本地仓库和远程仓库。

本地仓库实际上是存储在个人电脑中的,用于存储个人提交记录与提交日志,说简单

点,你现在commit提交的内容都在本地。

远程仓库是公网或外网中的一个仓库,主要用于存储个人或团队的提交记录与提交日

志,团队合作开发也是靠远程仓库实现的。大家都把东西提交到同一个远程仓库里面

就OK了,这样每个人都可以获取到团队内开发的所有内容了。

6.1 常用的Git代码托管服务

|--------|------------------------------------------------------------------------------------|-------------------------------------------------------|
| 名称 | 网址 | 说明 |
| gitHub | https://github.com/ | 一个面向开源及私有软件项目的托管平 台,因为只支持Git 作为唯一的版本库 格式进行托管,故名gitHub |
| 码云 | Gitee - 基于 Git 的代码托管和研发协作平台 | 国内的一个代码托管平台,由于服务器 在国内,所以相比于GitHub,码云速度 会更快 |
| GitLab | https://about.gitlab.com/ | 一个用于仓库管理系统的开源项目,使 用Git作为代码管理工具,并在此基础上 搭建起来的web服务 |

6.2 码云代码托管服务

码云网址:Gitee - 基于 Git 的代码托管和研发协作平台

使用码云的操作流程如下:

*注册码云账号

*登录码云

*创建远程仓库

*邀请其他用户成为仓库成员

6.3 注册码云账号

注册网址:注册 - Gitee.com

6.4 登录码云

注册完成后可以使用刚刚注册的邮箱进行登录(地址: 登录 - Gitee.com

6.5 创建远程仓库

登录成功后可以创建远程仓库,操作方式如下:

页面跳转到新建仓库页面:

仓库名称:必填,每个仓库都需要有一个名称,同一个码云账号下的仓库名称不能重

路径:访问远程仓库时会使用到,一般无需手动指定,和仓库名称自动保持一致

开源:所有人都可以查看此仓库

私有:只有此仓库的成员可见,其他人不可见

*创建完成后可以查看仓库信息:

仓库创建完毕,可以看到,如果我们要与远程仓库同步,这里支持多种通信协议,当

我们选中一种协议后,后面会出现对应的远程仓库地址

6.6 邀请其他用户成为仓库成员

前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管

理员)。在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个

参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。

点击管理按钮进入仓库管理页面,左侧菜单中可以看到【仓库成员管理】:

点击【开发者】菜单,跳转到如下页面:

点击【添加仓库成员】菜单下的【邀请用户】菜单,跳转到如下页面:

可以看到邀请用户有多种方式:链接邀请、直接添加、通过仓库邀请成员
注意:被邀请用户必须为码云的注册用户,否则无法成为仓库成员

七.Git远程仓库操作

关联:

现在readme.txt已经推送到我们自己的本地仓库,在推送到码云仓库前,我们需要先
建立本地仓库与远程仓库的关系

|-------------------------------------|
| 添加远程仓库命令格式:git remote add 简称 远程仓库地址 |

查看

如果要查看已经配置的远程仓库服务器,可以执行 git remote 命令,它会列出每一

个远程服务器的简称。

可以通过-v参数查看远程仓库更加详细的信息

本地仓库配置的远程仓库需要一个简称,后续在和远程仓库交互时会使用到这个简称

拉取:从码云仓库拉取到本地仓库

注意:在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库

|-------------------------------------------------------------------------------------------------------------|
| 命令:git pull origin master --allow-unrelated-histories 首次拉取需要添加:--allow-unrelated-histories 命令:git pull 后续拉取 |

推送:本地仓库推送到码云仓库

|------------------------------------------------------|
| 命令: git push -u origin master 首次推送 命令: git push 后续推送 |

克隆

如果我们新加入一个团队,这个时候就需要我们把代码从远程仓库克隆过来,那么咱

们操作呢?

新建文件夹learnB,新建的文件中右键

|--------------------|
| 命令: git clone 远程仓库 |

git clone(克隆) 与 git pull(拉取) 区别

|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1.相同点:都是从远程服务器拉取代码到本地 2.不同点: git clone(克隆) :是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地, 是一个本地从无到有的过程。 git pull(拉取) :在本地有版本库的情况下,从远程库获取最新commit 数据(如果有 的话),并merge(合并)到本地。 |

win10系统本地认证

win10系统在 控制面板---->用户帐记---->管理windows凭据 中配置上gitee的网址与

用户名密码,可以方便后续使用,不用在频繁输入用户名与密码

注意:在配置gitee的网址时,一定要在前加上git

相关推荐
木槿711 小时前
软件包git没有可安装候选
汇编·git
诸葛亮的芭蕉扇13 小时前
前端工程中.git文件夹内容分析
前端·git·elasticsearch
sin220114 小时前
Git简介和特点
git
Cachel wood15 小时前
Vue.js前端框架教程1:Vue应用启动和Vue组件
大数据·前端·vue.js·git·elasticsearch·前端框架·ssh
ahhhhaaaa-17 小时前
【工具】Git 操作大全
数据仓库·git·开发组件
灰色人生qwer1 天前
git部分命令的使用
大数据·git·elasticsearch
A_New_World1 天前
Git命令
git
爱喝矿泉水的猛男1 天前
Git-安装与常用命令
git
成功之路必定艰辛1 天前
Android studio 已经忽略了.gradle 、.idea等文件,提交时仍然让提交到远程,ignore 文件不生效问题
android·git·android studio