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

目录

1 概述

2 安装Git

3 常用命令

3.1 设置用户签名

3.2 初始化本地库

3.3 查看本地库状态

3.4 添加暂存区

3.5 提交到本地库

3.6 修改文件

3.7? 历史穿梭

4 Git分支

4.1 概述

4.2 分支的操作

5 团队协作机制

5.1 团队内协作

5.1 跨团队协作

6 Gitee操作

6.1 创建远程仓库

6.2 远程仓库操作

6.2.1 为远程库创建别名?

6.2.2?推送本地分支到远程仓库

6.2.3拉取远程仓库到本地库

6.2.4 克隆远程库到本地

6.3 邀请加入团队

6.4 跨团队协作

6.5 SSH免密登录

7 IDEA集成Git

7.1 环境准备

7.2 初始化本地库

7.3 切换版本

7.4 创建分支

7.5 切换分支?

7.6 合并分支

7.7 合并冲突

8 IDEA集成Gitee

8.1 添加Gitee账号

8.2 分享项目到Gitee

8.3 推送代码到远程库

8.4 拉取远程库代码并合并

8.5 克隆Gitee代码到本地

8.6 Gitee复制GitHub项目

9 自建代码托管平台GitLab


1 概述

Git 是一个免费的开源分散式版本控制,旨在以快速高效的方式处理从小到大的各种项目。

何为版本控制:

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 版本控制最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换

为什么需要版本控制呢:因为工作不是一个人,而是团队协作,多人都修改文件,可能造成错误。版本控制就尤为重要

版本控制分为两种:

  • 集中式版本控制。缺点:服务器出现问题就无法使用了
  • 分布式版本控制。服务器出了问题,客户端依然保存完整的项目

Git工作机制:

Git共分为三个区域:

  • 工作区(写代码),顾名思义在这里写代码,可以删除,不会留下记录
  • 暂存区(临时存储),将写完的代码暂存这里,可以删除,不会留下记录
  • 本地库(历史版本),将暂存区的代码加入到这里后就无法删除,会留下记录

Git和代码托管中心:

  • 代码托管中心是基于网络服务器的远程代码仓库,一般我简单称为远程库
  • 局域网:GitLab
  • 互联网:GitHub(外网);Gitee码云(国内网站)

2 安装Git

基本上一直next就可以了,桌面鼠标右键有git bash,打开就可以使用了

3 常用命令

3.1 设置用户签名

?设置用户签名如下:

?

可以在c盘/用户/用户名? 下查找如下文件,看看是否设置成功

签名的作用是区分不同操作者的身份,用户签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。注意:Git首次安装必须设置一下用户签名,否则无法提交代码

3.2 初始化本地库

创建一个新目录,然后初始化,只有初始化之后才能使用git

然后我们就发现目录中新建了一个.git文件

3.3 查看本地库状态

首次查看,没有任何文件

新增文件,hello.txt

使用vim hello.txt新增这个文件,输入一些内容。yy复制,p粘贴

再次查看本地库状态:

前两行还是一样,因为我只是创建一个文件,并没有添加到git库。下面也提示了未追踪的文件用红色标出?

3.4 添加暂存区

再次查看我们发现,颜色绿了,添加成功,git追踪到了这个文件,此时文件存储到了暂存区。它也提示我们可以删除,我们删除试试:

这也告诉我们暂存区只是暂存,可以删除,它不会影响工作区的文件,更不会影响到本地库,都没有添加到本地库

3.5 提交到本地库

?还可以查看日志信息:

3.6 修改文件

修改后再查看状态就提示文件已被修改,我们需要再次添加到库?

添加到本地库之后再查看日志:

?发现有两个版本,而head指向第二个版本,所以这时我们在工作区查看的文件就是第二个版本

3.7? 历史穿梭

假如新的版本我觉得还不如旧的版本我可以改回去:

首先查看历史版本,用reflog查看日志就可以看到,复制版本号

4 Git分支

4.1 概述

什么是分支:在版本控制过程中,同时推进多个任务,我们就可以为每个任务都创建一个分支,主线分支不会受影响。可以理解为副本,一个分支就是一个副本

分支的好处:效率高,一个分支开发失败不会影响其它分支

4.2 分支的操作

然后修改文件,添加到暂存区,提交到本地库

切换到master分支再次查看hello文件,发现并没有改变,接下来合并分支,将hot-fix中的hello合并到master中,也就相当于改变master分支中的hello文件为hot-fix中的hello文件:

这是成功的,但是当我们将两个分支的hello文件都修改再合并就会出现冲突:

我们先修改master中的文件提交到本地库

切换到hot-fix分支,我们再修改hot-fix分支的文件提交到本地库?

再切换到master分支,合并文件:

我们发现出现了冲突?

解决合并冲突问题:

我们打开hello文件,发现多了很多内容,把多余的删掉

删掉多余内容后如下:

我们再次将文件提交到本地库但是发现出现了错误:

把文件名去掉就可以了:

而hot-fix分支的文件还是之前修改的那个样子

总结合并冲突的过程和解决方法:两个分支都修改文件并且提交到本地库后,打开文件将多余的删掉然后再次提交本地库,但是这次提交不需要指定文件名称

5 团队协作机制

5.1 团队内协作

一个团队会有一个本地库,但是别人要进行操作怎么办?负责人会将本地库上传(push)到代码托管中心(远程库),然后团队别人可以拿到(clone)这个库进行各种操作,操作完之后可以上传(push)到代码托管中心。负责人看到这个修改后的觉得还不错可以更新本地库(pull)。

5.1 跨团队协作

两个团队的协作:若自己团队写代码还不够,需要别的团队来写,但是我不能直接把别的团队的人加入到我的团队,这时就需要跨团队协作。首先将本团队的远程库代码复制(fork)给别的团队的远程库。然后另一个团队就可以将远程库的文件复制到本地库进行修改,修改后添加(push)到远程库。然后给本远程库发送拉取请求(Pull request),在接收之前我是要审核的,审核完就合并(merge)到我的远程库,最后拉取(pull)到我的本地库。

6 Gitee操作

因为登不上GitHub,就用Gitee了

6.1 创建远程仓库

首先新建仓库

6.2 远程仓库操作

6.2.1 为远程库创建别名?

因为远程仓库地址太长我们最好创建个别名:

我们发现创建了两个别名:这表明这个别名既可以推送又可以拉取

6.2.2?推送本地分支到远程仓库

登录后打开Gitee发现文件以及被推送到Gitee?

6.2.3拉取远程仓库到本地库

我们可以直接在远程仓库修改代码,但是这不会改变本地库

这就需要我们拉取远程仓库到本地库操作:

不需要我们手动提交到本地库,这一部就可以了

6.2.4 克隆远程库到本地

我们要再创建一个本地库名为gitlhc

在克隆前我们要删掉之前的凭据,因为Windows一次只能登录一个?

要在新建的本地库打开git?

打开本地库:已经克隆成功?

而且我们发现clone会拉取代码并且初始化本地仓库并且会创建别名,别名为origi。克隆不需要账户,以为它是公开的,谁都可以克隆。

6.3 邀请加入团队

我们在新创建的本地库中修改克隆的文件并提交到本地库,之后push到我们的远程库

我们发现出现错误:无法访问,因为我们还不是这个团队的成员,虽然可以克隆仓库但是不能推送我们修改的仓库。

我们要将这个用户加入到我们的团队:

点击 仓库gitspace->管理->仓库成员管理->添加仓库成员

我们登录

另一个账号查看私信看到已经受到邀请,同意即可?

我们再次push?

查看我们的远程仓库确实上传成功了?

我们再在最初的本地仓库拉取远程仓库:

记得在拉取之前要在凭据管理器删除别的用户

再使用 git pull gitspace master将远程仓库拉回到本地

6.4 跨团队协作

也就是不同团队的协作,但是我没有账号了,所以这里将wangzhijuan那个账号移除我的团队来模拟这个功能

别的团队可以直接在Gitee上搜我的远程仓库,当然我将链接发给他更合适,拿到链接点击fork将项目叉到自己的仓库

接下来他会进行修改代码,接下来点击上方的 Pull Requests 请求,并创建一个新的请求

填写好后点击创建pull request,然后打开我们的Gitee查看:

然和合并分支:

?查看我们本地库的代码已经被合并成功了

6.5 SSH免密登录

在 C盘 User目录下自己的账户下右键 git bash here,ssh-keygen -t rsa -C 自己的邮箱签名

输完命令按三下回车,就会弹出如上结果,而且user目录下会有.ssh文件,里面是公钥和私钥,? cat id_rsa.pub是公钥,将公钥复制

添加公钥?

连接不上,再见(微笑)

7 IDEA集成Git

7.1 环境准备

在集成Git前,我们要先忽略一些文件,比如

为什么忽略它们,它们与实际项目无关,不参与服务器上部署运行,把它们忽略掉能够屏蔽IDE工具之间的差异

怎么忽略:

(1)在用户家(C/User/用户名) 下创建?git.ignore

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (
.mtj.

# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml

(2)在 .gitconfig 文件中引用忽略配置文件(.gitconfig 在家目录中)

[user]
	name = jay
	email = jay@qq.com
[core]
	excludesfile = C:/Users/这个杀手有点冷/git.ignore

注意:以上方法经测试没有成功,换个方法再试?

(3)在idea里面定位

7.2 初始化本地库

创建Git本地库

?

创建本地仓库之后

我们可以右键将文件加到暂存区

然后我们写代码,在我们创建java文件时会有提示:

它提示我们是否要将文件加入到git暂存区,我们可以直接add,当然也可以后面再加

写完代码后我们可以将整个模块加入到暂存区

然后我们可以将模块提交到本地库

???????

我们发现提交的信息把那些不重要的都忽略掉了

提交完后,文件又变成原来的颜色

?

以上截图有些混乱,因为不是一个模块,在第一次测试时出现一个问题,忽略失败。所以后面又新建一个项目测试,不过大体上就是这个意思。

7.3 切换版本

修改代码再次提交到本地库,这里我们可以不用先添加到暂存区然后再提交到本地库,可以直接提交到本地库,一步到位

点击左下角git-->Log,右键版本选中Checkout Revision即可切换版本?

7.4 创建分支

可以右键模块创建:

也可以点击右下角的master进行创建,会弹出一个框,填写分支名称

7.5 切换分支?

创建成功后我们发现右下角的master变成了hot-fix,并且我们可以直接在这切换分支

7.6 合并分支

首先我们切换到hot-fix分支修改代码,然后我们切换到master分支,显然代码没有改变,这时我们选中左下角hot-fix的合并功能如下:

这样就能合并成功

7.7 合并冲突

我们修改hot-fix分支的代码然后提及到本地库,再修改master分支的代码,这时再合并就会冲突:

将两边的代码移到中间,然后提交,它会自动提交到本地库

8 IDEA集成Gitee

8.1 添加Gitee账号

首先在idea中下载Gitee插件,在设置中找到Gitee然后添加用户

上面登录账户不能使用那个,要使用邮箱

8.2 分享项目到Gitee

我们在Gitee远程库上就可以查看到我们提交的库了

8.3 推送代码到远程库

首先修改带并且提交到本地库,然后我们在上面选中Git然后选中Push?

我们自定义一个码云仓库的链接

?

值得注意的是:我们在修改代码前要注意查看本地代码和远程库代码是否一致,如果远程库已经修改了一些代码但是本地库又修改,就会冲突。我们建议如果远程库代码修改了,先将远程库pull到本地库,然后再修改,然后再push到远程库

8.4 拉取远程库代码并合并

首先修改远程库的代码

然后直接点击上方的Git--->pull即可完成拉取

8.5 克隆Gitee代码到本地

我们艺高人胆大把本地代码删了怎么办,那自然是跑路(不是)。因为我们在远程库保存着代码,所以我们不怕,下面我们将远程库代码克隆到本地

打开idea点击如下:

选中Gitee,idea甚至已经给我们列出了我们账号的各种项目,选中克隆即可,如果不是克隆我们自己的项目也没关系,我们复制链接也可以完成克隆

8.6 Gitee复制GitHub项目

因为连接GitHub比较麻烦,我们可以将GitHub的项目复制到Gitee上

我们在新建仓库时会提示我们导入仓库?

我们拿到链接直接导入即可?

9 自建代码托管平台GitLab

不建了,谁爱建谁建

  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:20:15  更:2022-10-31 12:22:10 
 
开发: 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/19 20:22:05-

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