文章目录

为什么需要git

个人在工作或者学习的时候会遇到这种事情:
写论文:一个论文可能要修改很多次,可能会产生很多版本
比如说:

  • Java入门到精通.word 原版
  • Java入门到精通.word 原版2019.4.20
  • Java入门到精通.word 修订版 2019.5.20
  • Java入门到精通.word 终极版 2019.6.20
  • Java入门到精通.word 最终版 2019.7.20

我们需要一个东西来进行版本的控制管理;
那么这个问题如何发展到一群人?
再比如说一个公司协同开发一个网站:

  • 总共的代码就一份
  • 但是会有多个人去共同开发
  • 每个人都有每个人的事情,无法做到统一

解决方案:集中式处理

  • 每个人修改完毕,就提交到一个大家都能访问到的服务器
  • 每个人要增加或者修改代码,需要同服务器上拿来最新的代码
  • 修改完成后,再次提交,保证服务器中有最新的代码

解决方案优化:分布式处理

  • 每个人写完代码后,立马将更新的东西告知所有人
  • 每个人都拥有全部的代码
  • 每个人都是一个独立的服务器代码库
  • 假设一个人的代码丢了,直接从别人那里拷贝一份即可

版本控制

在开发或者工作中,每一次修改都会产生一次对应的记录,记录了修改者以及修改的内容,还有修改的时间等待。方便开发人员及时获取最新的动态,并且知道更新了什么地方。
简单地说,就是多人协同开发的一个基础

分布式 VS 集中式

分布式:一般用来制作开源项目

  • 不会被服务器限制
  • 所有人可以拿到最新的源代码
  • 不安全,因为开源

集中式:一般用来制作公司内部项目

  • 只有一个公共的服务器
  • 所有人写代码之前,需要去拿最新的代码过来
  • 写完之后,要即时提交代码到服务器
  • 安全

GIt起源

  • Git是世界上最先进的分布式版本控制系统
  • Git是免费的,开源的
  • 创始人:Linus Benedict Torvalds,他还创立了Linux。
  • Linux最初只有他一个人维护,后来慢慢越来越多的人加入修改的建议,提交代码
  • 所有人的代码,都从世界各地发给他,由他一个人编写进Linux内核中,他慢慢的就烦了
  • 于是他想去找一个可以版本控制的平台:BitKeeper,免费地给Linux社区使用
  • Linux社区中存在许多大佬,他们试图破解BitKeeper协议;BitKeeper就不愿意再免费给他们使用了
  • 于是,Linus花了两周的时间,用C语言写了一个版本控制的管理系统,而且是分布式的
  • 这个管理系统就是后来大名鼎鼎的Git
  • 后来有人基于Git搭建了开源的平台:GitHub,所有人都可以使用
  • 我们也可以搭建自己的版本库:GitLib
  • 2019年,在中国的今天,我们选择使用码云(Gitee),来作为项目源代码存放的地方。码云有如下的优点:
  • 不受网络的限制
  • 国人开发
  • 社区十分活跃
  • 类似的平台还有coding等等

下载使用Git

官网下载地址:
​​​https://git-scm.com/​​​ 但是官网下载十分地漫长,可以去淘宝Git镜像的下载地址:
​http://npm.taobao.org/mirrors/git-for-windows/​​ 【推荐】

一路傻瓜式安装即可;

Git综合讲解_Gitee

安装完成后,目录结构如图所示:

Git综合讲解_Gitee_02


我们打开git-bash,弹出如图所示的界面:

Git综合讲解_Git_03


按住ctrl+鼠标滚动可以调节自己的大小

Linux常用命令

常用命令

pwd:查看当前所在目录

cd :切换文件夹

  • cd ~ :切换到用户所在目录
  • cd / :切换到根目录

ls :列出清单

  • ls -a : 就是 ls -all

我们现在进入我们的桌面,如图所示:

Git综合讲解_ide_04

clear :清空屏幕

mkdir 文件名 : 创建一个文件夹

rm -r test : 删除一个文件夹

touch 文件名 : 创建一个文件

echo 内容 > 文件名 : 向文件中写入内容

:history : 查看历史记录

命令 --help : 查看命令帮助文档:

git设置用户名和邮箱

git安装完之后第一步就应该是设置用户名和邮箱,相当于一个标识,之后每次一提交项目,都会附带这个信息,使用以下命令:

git config --global user.name 
git

如图所示:

Git综合讲解_Gitee_05


必须要配置这两个属性。

查看Git全部的配置,使用以下命令:

git config -l  # 查看git的全部配置
git config --global --list # 查看当前用户的配置

如图所示:

Git综合讲解_Git_06


这些信息既然可以保存,那么到底保存在系统中的什么地方呢?

git配置文件存放地址

  • 用户配置的global文件:C盘:/用户/${当前用户}/.gitconfig 文件打开后如图所示:
  • Git综合讲解_ide_07

  • 系统配置文件:/Git安装目录下面/mingw64/etc/gitconfig 文件打开后如图所示:
  • Git综合讲解_Git_08

Git工作理论

git的目录如下所示:

  • 工作目录:就是电脑上的一个属于git的文件夹
  • 暂存区:我们看不到,提交的信息暂存在这里
  • Git本地仓库:我们看不到,通过暂存区提交过来
  • Git远程仓库:GitHub、码云等待,负责托管我们的项目,需要从Git本地仓库提交过来

示意图如下所示:

Git综合讲解_服务器_09

获得一个Git仓库

  • 本地搭建一个仓库
  • 在一个位置建立一个文件夹
  • 在文件夹中右键,Git bash here,在这个文件夹下打开git命令行
  • 输入命令​​git init​​,如图所示:
  • Git综合讲解_Git_10

  • 至此,一个本地的git仓库就搭建成功了,空文件夹中出现一个名为.git的隐藏文件夹,如图所示:
  • Git综合讲解_Gitee_11

  • 先在工作目录下创建一个a.txt,随便写入一段话,如图所示:
  • Git综合讲解_git_12

  • 通过​​git add​​​命令将这个文件添加到暂存区 , 通过​​git status​​ 查看当前状态,如图所示:
  • Git综合讲解_ide_13

  • 暂存区对应 :.git隐藏文件下的 index文件
  • 我们通过​​git commit -m “注释”​​ 提交到本地仓库
  • 通过​​git status​​ 查看是否提交成功!
  • 远程克隆一个仓库​​git clone []​
  • 可以github或者码云上去克隆一个项目;
  • 如果使用的是码云,进入项目页面后,点击右边的“克隆/下载”,即可复制该项目的HTTPS,如图所示:
  • Git综合讲解_ide_14

  • 使用​​git clone []​​命令即可将该项目拷贝到本地目录下,如图所示:
  • Git综合讲解_Git_15

搭建自己的远程仓库

这里使用码云: ​​https://gitee.com/​

什么是码云

码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,我们在 Gitlab 的基础上做了大量的改进和定制开发,目前已经成为国内最大的代码托管系统,致力于为国内开发者提供优质稳定的托管服务。

创建你的第一个仓库

​https://gitee.com/help/articles/4122​

任务:

  • 搭建一个远程仓库
  • 克隆一个远程仓库到本地
  • ​修改ReadME.md​
  • push到码云远程仓库
  • 查看提交之后到远程的信息

将本地电脑码云连接起来

  • 打开用户目录下,找到id_rsa.pub,如图所示:
  • Git综合讲解_Git_16

  • 码云中填写SSH连接内容,如图所示:
  • Git综合讲解_Gitee_17

若没有id_rsa.pub文件,则通过以下代码来解决:

ssh-keygen -t rsa -C "545646733@qq.com"

ssh-keygen -t rsa -C "youremail"

IDEA中使用Git

  1. 在IDEA的初始页面进行设置,如图所示:
  2. Git综合讲解_Git_18

  3. 在弹出的页面中配置git,如图所示:
  4. Git综合讲解_服务器_19

  5. 打开项目,项目如图所示:
  6. Git综合讲解_服务器_20

  7. 在IDEA中配置项目集成到Git中,如图所示:
  8. Git综合讲解_Git_21


  9. Git综合讲解_Git_22

  10. 配置完这一步后,在项目中会产生一个.git文件夹,说明项目成了了一个git项目,如图所示:
  11. Git综合讲解_git_23

  12. 我们可以选择手动提交,也可以使用IDEA提交,我们选择使用IDEA,如图所示:
  13. Git综合讲解_Git_24

  14. 填写提交的信息,如图所示:

Git综合讲解_服务器_25

  1. 等待加载完成后即可,如图所示:
  2. Git综合讲解_服务器_26

  3. 提交完成后,按照步骤push项目,如图所示:
  4. Git综合讲解_Git_27


  5. Git综合讲解_Git_28


  6. Git综合讲解_Git_29