Git详细使用文档

Git

请添加图片描述

1.项目存在哪些问题

  • 1.项目安全性太低
  • 2.项目很难协同开发
  • 3.项目无端报错
  • 4.项目版本混乱

2.Git概念

Git是一个分布式的版本控制及协同开发工具

3.版本控制工具分类

3.1.集中式版本控制工具 cvs svn

​ 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
请添加图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPqivjgj-1674896002757)(img\集中式版本控制系统s.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pZEiTAOi-1674896002757)(img\集中式版本控制工具.jpg)]

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

3.2.分布式版本控制工具 Git

那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

在这里插入图片描述

当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,把SVN等远远抛在了后面。

4.Git下载,安装

4.1.下载

官网下载:https://git-scm.com/

4.2.安装

傻瓜式安装!

在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "zhangcn"
$ git config --global user.email "15236674712@163.com"

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

5.Git使用

1.创建Git仓库(本地库)

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ mkdir GitRepository

第二步,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in E:/GitRepository/.git/

在这里插入图片描述

瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

2.向仓库添加文件

和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。

1.创建一个文件

$ touch aaa.txt

2.将文件添加到仓库

第一步,用命令git add告诉Git,把文件添加到仓库:

$ git add <file>  #<file> 文件名
$ git add . #添加所有文件

执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

提交警告

在这里插入图片描述

工作区的文件都应该用 CRLF 来换行。如果
改动文件时引入了 LF,提交改动时,git 会警告你哪些文件不是纯 CRLF 文件,但 git 不会擅自修改工作区的那些文件,而是对暂存区(我们对工作区的改动)进行修改。也因此,当我们进行 git add 的操作时,只要 git 发现改动的内容里有 LF 换行符,就还会出现这个警告。

解决方式:
我们可以在git命令行中输入如下指令:

$ git config --global core.autocrlf false

**建议:**遇到了这种问题可以直接忽略,对我们整体工作不会造成影响!

3.向仓库提交文件

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "提交的描述信息" #m=message 本次提交的描述信息

在这里插入图片描述

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

嫌麻烦不想输入-m "xxx"行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。实在不想输入说明的童鞋请自行Google,我不告诉你这个参数。

git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);1 insertions`:插入了一行内容(readme.txt有两行内容)。

4.查看Git 状态

$ git status
  • 红色:工作区已修改并未添加到暂存区
  • 绿色:工作区的修改已经添加到暂存区并未提交到版本库
  • nothing to commit, working tree clean 工作区与版本库保持一致

5.Git 分区原理

在这里插入图片描述

在这里插入图片描述

6.查看Git提交版本

当然了,在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

$ git log

git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

$ git log --pretty=onelien  #一行展示

需要友情提示的是,你看到的一大串类似1094adb...的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。

每提交一个新版本,实际上Git就会把它们自动串成一条时间线。如果使用可视化工具查看Git历史,就可以更清楚地看到提交历史的时间线:

查看历史提交指令

$ git reflog

7.版本回退

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

现在,我们要把当前版本append GPL回退到上一个版本add distributed,就可以使用git reset命令:

7.1.回退上n个版本

$ git reset --hard HEAD^   #^表示回退上一个版本  有几个^就代表回退上几个版本
$ git reset --hard HEAD~100  #回退上100个版本

7.2.回退到制定版本

$ git reset --hard e93a(commitId) #commitId 提交版本的id

8.撤销修改

8.1.撤销工作区的修改

$ git restore <file> # <file>文件名

8.2.撤销暂存区的修改

#1.将暂存区的修改撤销到工作区
$ git restore --staged <file>   # <file>文件名
#2.将工作区的修改撤销
$ git restore <file> # <file>文件名

9.删除文件

1.删除文件

$ rm -rf bbb.txt

2.确定删除

$ git add/rm <file>        #add/rm :提交修改/确定删除    <file>文件名

#提交
$ git commit -m "确定删除"

3.误删除

$ git restore <file> # <file>文件名

6.分支管理

6.1.创建分支

$ git branch dev

6.2.查看分支

$ git branch

6.3.切换分支

$ git checkout dev

6.4.创建并切换分支

$ git checkout -b prod

6.5.合并分支

$ git merge dev

#注意:要将dev分支合并到master分支上,就在master分支执行此命令

6.6.删除分支

$ git branch -d dev

6.7.分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

所以,团队合作的分支看起来就像这样:

在这里插入图片描述

7.Github使用

1.注册,登录

官网地址:https://github.com/

2.创建Github仓库

在这里插入图片描述

3.将远程仓库拉取到本地

$ git clone git@github.com:15236674712/2005-Repository.git

克隆失败:

在这里插入图片描述

  • 请确保您具有正确的访问权限
  • 并且存储库存在。

4.生成.ssh秘钥

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

  • C:\Users\Administrator.ssh
$ ssh-keygen -t rsa -C "15236674712@163.com"

在这里插入图片描述

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

公钥:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAarLzlbCt1IuQ2BWgqwox4PD5NvUjNx8f2iGq0iQziwZ1doMBsePeDUbNEWvYhf+JdU/GIbxooFX18K6fwbv7KzG2h9pwlOFknUnOgjEAaPkLjoEmwCIGt/VJqNivcpWh6Pfn3Lzp9w5GVqK0AZTLK+Sb7pWs6LHeHVoMGFQZWNZiMzZ6QlWhOrHIBotLh2ybbiPZ5q+3i8ykKKmyRLKRirrxEoMWCRzTtrnKBIwYGIT9Qa7Cn+Nfgo6xTS2SFuWnKoU+xfYhvv1B9phHjGQe+lFc3fxATfNEPICDW1kOBj8mPayDgkuNkk9Y0oI6TqqNPOcS6TQSAjDA380/DcE9DBlMeOhNEEQWwVetrqpuLX2BdParPu46sXRkUkCOzWAHunLZILy15Qm+/8/OgTvQnofF63tDKXv0rQgegdo7AvXzma0BdjVvBJD8XMxuphW8hzOc4Avr26iLOKRrH10SmY+H0efeVOHvAIK2jP1M/050G80JAU9vnf4Utp1p65s= 15236674712@163.com

私钥:

-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

5.配置GitHub信任列表

第2步:登陆GitHub,打开“Settings”,“SSH and GPG Keys”页面:

然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

在这里插入图片描述

6.将远程仓库拉取到本地

$ git clone git@github.com:15236674712/2005-Repository.git

克隆成功:

在这里插入图片描述

7.将本地修改推送至远程仓库

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上:

$ git push -u origin master   #origin 默认远程仓库的名字    master:本地分支名称

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

在这里插入图片描述

8.将远程的修改同步到本地

$ git pull origin master

在这里插入图片描述

9.将本地项目推送至Github

1.确定本地项目

  • 确定项目名字
  • 在项目中加入.gitignore

2.在Github创建创库

创建一个空仓库(空文件夹),要与本地项目名保持一致

在这里插入图片描述

3.仓库创建成功

执行以下命令:

在这里插入图片描述

git init
git add .
git commit -m "yingx项目第一次提交"
git branch -M main
git remote add origin git@github.com:15236674712/git_2005.git   #(将本地仓库(项目仓库)与远程空文件夹做一个连接)
git push -u origin main  #将本地项目推送至远程Github

4.拉取远程修改到本地

5.将本地修改推送至远程

8.Git集成IDEA

8.1.配置Git

在这里插入图片描述

8.2.配置Github

配置Github

在这里插入图片描述

创建token

登陆Github网站生成

在这里插入图片描述

配置Token权限
在这里插入图片描述

idea配置token

在这里插入图片描述

配置Github成功

在这里插入图片描述

8.3.修改idea终端为Git bash

修改控制台shell路径:setting -> Tools -> Terminal -> Shell path,修改为git安装路径。

在这里插入图片描述

8.3.Terminal中文乱码问题

我们配置idea 的终端为git 的bash.cmd 之后会出现中文乱码

解决方法:

1.git的安装路径下etc文件下有个 bash.bashrc 文件,在这个文件末尾追加:

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

2.中文乱码问题

  • 在idea安装目录下找到idea.exe.vmoptions和idea64.exe.vmoptions文件,在文件的最后添加:

-Dfile.encoding=UTF-8

  • 在git安装目录下找到etc/bash.bashrc文件,在文件的最后添加:

export LANG=“zh_CN.UTF-8”

export LC_ALL=“zh_CN.UTF-8”

  • 在Terminal控制台输入:set LESSCHARSET=utf-8

  • 退出控制台,重新进入即可。exit

    在这里插入图片描述

8.4.初始化Git仓库

在这里插入图片描述

选择要初始化仓库的项目

在这里插入图片描述

8.5.添加到暂存区 add

在这里插入图片描述

8.6.提交到版本库 commit

在这里插入图片描述

加入提示信息

在这里插入图片描述

8.7.Idea中类的颜色

  • 红色:工作区已修改并未添加到暂存区
  • 绿色:修改已经添加到暂存区暂未提交到版本库
  • 黑色:版本库与工作区一致
  • 蓝色:已经提交到版本库,有修改

8.8.查看历史提交版本

在这里插入图片描述

展示历史提交版本

在这里插入图片描述

8.9.撤销修改

在这里插入图片描述

8.10.版本回退

8.10.1选择回退版本直接回退

在这里插入图片描述

8.10.2根据版本提交id(commitId)回退

复制版本提交编号

在这里插入图片描述

选择切换版本

在这里插入图片描述

输入要切换的版本编号

在这里插入图片描述

8.11.分支

查看/添加分支

在这里插入图片描述

分支操作

在这里插入图片描述

合并分支

在这里插入图片描述

8.12.将本地项目推送至Github

在这里插入图片描述

填写要分享的项目名

在这里插入图片描述

分享成功

在这里插入图片描述

8.13.将Github的修改更新到本地

pull

在这里插入图片描述

在这里插入图片描述

8.14.将本地的修改推送至Github

Commit and Push

在这里插入图片描述

push

在这里插入图片描述

推送成功

在这里插入图片描述

8.15.使用idea克隆并打开远程的项目

使用Git克隆项目

在这里插入图片描述

创建本地文件夹,克隆项目

在这里插入图片描述

是否打开项目

在这里插入图片描述

使用哪种方式打开项目

在这里插入图片描述

8.16.解决代码冲突问题

push时遇到冲突

在这里插入图片描述

当前分支主管的推送被拒绝
推送前需要合并远程更改

当push时遇到冲突,要先pull 再push

判断代码有没有交集,idea自动判断

  • 1.代码无交集

    直接pull成功

  • 2.代码有交集

    当两个开发者同时操作到一个文件时会出现冲突

    当两个开发者遇到冲突代码有交集时:两个人协商解决,解决之后将代码再推送至Github,另一个人再同步修改

    pull遇到冲突

    在这里插入图片描述

    解决冲突案例

    在这里插入图片描述

开发中一定先pull再push

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值