Git

为什么要学习git

版本管理,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修改情况的系统。

版本管理软件分类

集中式版本管理:

集中式(代表:SVN )

GIT - 图1

集中式版本管理软件的特点是,代码的版本集中到一个服务器上。
问题:如果没有网络或者服务器崩溃,将无法进行版本管理

分布式版本管理:

分布式(代表:Git )

GIT - 图2

分布式版本管理软件的特点是,代码的版本分布到每个计算机上。
99%的操作都是在自己的计算机上完成,联网即可同步代码。

查看版本号

打开终端,输入git —version 输入回车 即可查看版本号

GIT - 图3

配置个人信息

每一次安装都要配置

1.配置邮箱

在出现的终端窗口中,输入 git config —global user.email xxx@.com ,回车执行该命令,用以配置邮箱

2.配置用户名

在出现的终端窗口中,输入 git config —global user.name “xxx” ,回车执行该命令,用以

3.查看是否配置成功

  1. git config --global user.email
  2. git config --global user.name

初始化本地仓库

找到你要使用git管理的项目目录,右键打开git客户端,然后输入git init + 回车即可进行初始化

  1. git init

GIT - 图4

重复初始化会提示已经有一个仓库了

GIT - 图5

基础命令

提交记录

每当项目完成了一个小功能,都需要提交一次记录

1.添加对 改动过文件的监视

  1. git add . //这个点不能紧跟在add的后面,一定要加一个空格
  2. //这个 . 号为正则表达式内任意字符的意思,如果新增了很多文件,一个.号就代表了所有新增

2.添加一个有意义的版本记录

  1. git commit -m '框架的搭建' //输入,回车,红色提示错误,白色正常
  2. git commit -m '登陆的完成'

GIT - 图6

查看仓库状态

查看状态

  1. git status

当提示 (use “git add …” to include in what will be committed)时,就是提示你需要输入git add . 提交新增的记录

当提示

Changes to be committed:

(use “git restore —staged …” to unstage)时,需要更新一下版本信息,因为你输入过提交新增记录(git add .),然后查看仓库状态,它会提示你更新版本。

查看日志

1.常规查看日志

  1. git log

返回的是日志所有的内容

GIT - 图7

2.精简查看日志

  1. git log --oneline

会返回精简的日志内容

GIT - 图8

在很多日志的情况下,一直按回车,按到end后会出不去,这个时候按下字母’Q’即可跳出end

GIT - 图9

3.强大查看日志

一般用不到,只有在回退版本,又关闭了git软件,又想回到最新的版本时才会用到

  1. git reflog

GIT - 图10

撤销

撤销本次代码的修改

  1. git checkout .

注意!!!:在进行撤销之前需要是这个状态,(做过历史信息提交,相当于存档)

GIT - 图11

回退

进行这个操作可以回退至任意版本,由提交的 git commit -m ‘’ 来判断某个版本

1.获取你想要回退到的版本id(版本号) 先看精简版日志 语法:git log —oneline

GIT - 图12

2.拷贝一下,黄色部分的 id即可

3.执行 回退命令

  1. git reset --hard 版本号

远程仓库

概念:

其实就是一个公共的,外网下存放代码的服务器

公司可能会自己搭建一个git 远程仓库,也有可能付费买现有的远程仓库服务

免费的公共远程仓库,大家一起用

国外 github 全球都在用

国内 码云 (码云把全部的仓库都设置为私有!!需要想码云申请公开!)

使用步骤

1.先注册好账号(码云、github、或者公司给你已注册好的公司账号)

2.登陆好码云后,新建一个远程仓库,网页右上角点加号

GIT - 图13

3.填写仓库信息

仓库名称需要填英文,刚进公司,公司已经定好了项目名称,路径是由项目名称定义的,默认私有,下面三个勾不要勾选即可。

GIT - 图14

4.仓库创建成功

注:以下数据是仓库创建成功后的页面数据,每个人注册的数据不同,仅做参考

快速设置— 如果你知道该怎么操作,直接使用下面的地址

https://gitee.com/land-birdliu/magic_of_if.git

我们强烈建议所有的git仓库都有一个README, LICENSE, .gitignore文件

初始化 readme 文件

Git入门?查看 帮助 , Visual Studio / TortoiseGit / Eclipse / Xcode 下如何连接本站, 如何导入仓库

简易的命令行入门教程:

Git 全局设置:

  1. git config --global user.name "陆行鸟"
  2. git config --global user.email "10892819+land-birdliu@user.noreply.gitee.com"

创建 git 仓库:

  1. mkdir magic_of_if
  2. cd magic_of_if
  3. git init
  4. touch README.md
  5. git add README.md
  6. git commit -m "first commit"
  7. git remote add origin https://gitee.com/land-birdliu/magic_of_if.git
  8. git push -u origin "master"

已有仓库?

  1. cd existing_git_repo
  2. git remote add origin https://gitee.com/land-birdliu/magic_of_if.git
  3. git push -u origin "master"

5.在你的本地仓库下打开git命令工具

输入git status

GIT - 图15

如果提示这一行:nothing to commit, working tree clean 说明你的仓库没东西可提交,即可接下一步,因为怕你有某一步修改没有提交

6.把远程仓库的地址记录在一个变量上

origin 可以改,一般不会改它

在git输入以下代码

注:以下数据是仓库创建成功后的页面数据,每个人注册的数据不同,仅做参考

  1. git remote add origin https://gitee.com/land-birdliu/magic_of_if.git

GIT - 图16

第二行代表重复输入远程仓库地址,已经有了,不要再添加

7.开始把本地仓库的代码推送到远程仓库上

在git输入以下代码 (这一行是通用的)

  1. git push -u origin "master"

它会要求你填写码云上的账号和密码

如果填写账号密码并且推送成功,下次你只需要这么敲,git push,和git add . git commit -m ‘项目名称’ 组成推送三连

填写错误提示:

填写错误重新填写即可

GIT - 图17

GIT - 图18

GIT - 图19

填写成功提示:

GIT - 图20

8.推送网页成功

GIT - 图21

克隆远程仓库

下载远程仓库到本地的操作,就是克隆远程仓库

1.第一步去复制这个地址,

在公司中可能是你的上司/组长将地址复制给你

GIT - 图22

2.第二步新建一个文件夹

GIT - 图23

3.在git输入git clone 地址

地址是你上司发给你的,可查看第一步

注:会要求你输入码云账号密码

出现提示说明下载成功了

GIT - 图24

GIT - 图25

码云添加观察者

常规开源方法

第一步 点击右上角管理

GIT - 图26

第二步 往下拉点开源

GIT - 图27

第三步 勾选并提交

GIT - 图28

第二种方法:添加观察者

1.切换成开源

可以不用申请,因为私有的观察者限制只有五个人能看,开源无限制

2.往上拖动,点击仓库成员管理

GIT - 图29

3.点击观察者

GIT - 图30

4.点击邀请用户

GIT - 图31

5.仓库权限改成观察者

GIT - 图32

6.复制链接给需要邀请的人

GIT - 图33

拉取更新

在已经克隆好的仓库中,获取到该仓库在远程仓库上最新的代码。不需要重新去克隆一次。

只需要拉取更新即可

1.进入到本地仓库目录

在克隆好的文件夹内右键打开git

GIT - 图34

2.敲下拉取更新

语法: git pull

GIT - 图35

Already up to date. 提示这个说明已经更新了

有这些数据说明是正常下载主包数据

GIT - 图36

多人协作

小白今天写了100行代码先提交上了远程仓库,小黄也写了90行,当推送时码云会识别你传的版本与仓库版本,会强行拦截你的推送,并且提示你先拉取更新

小白和小黄需要沟通,由后面推送的小黄已经写了100行代码的小白来进行合并文件,决定文件最终的模样 ,小黄拉取更新 触发冲突问题 ,自己手动修改冲突文件

步骤:

1.小黄输入git add .

2.小黄输入git commit -m ‘小白喜欢吃烤面筋’

3.小黄输入git pull 报冲突问题,手动修复冲突文件,

4.小黄需要和小白沟通,再次执行 git add . git commit - m git push 正常推送

image.png

三个区域

Git内部实现,离不开它维护的三个区域

工作区(代码区)

就是我们写代码的文件夹

做好的物品先放到箱子里暂时存放

image.png

暂存区

  1. 当使用了命令 git add . = 等于我们把文件放在了暂存区中

image.png

仓库

当我们使用了命令 git commit 就是把暂存区内的文件,提交到了本地仓库中

以上三个区域,其实都是在同一个文件夹中,只不过git根据文件的不同状态 划分出来的区域而已

分支

分支可以理解为复制了一份代码 可以拥有无数个分支!

不同分支之间的正确的操作,互不影响

作用是让我们更加安全、方便开发项目

我们其实验证都是在主分支master下工作

1.线上正常运行代码 生产版本

2.正在开发阶段代码 开发版本

image.png

如果开发版本做出来,上线生产版本,功能不好用,可以直接回退到生产版本1

查看分支

  1. git branch

image.png

开启新分支

  1. git branch 分支名称

image.png

切换分支

注:在紫色分支做的所有操作,与其他任意分支互不影响

改之前请进行保存文件与版本记录!git add . + git commit -m

  1. git checkout 分支名称

image.png

切换到紫色分支

合并分支

合并前需要解决冲突的问题,被合并的分支并不会消失。

需要先切换回主分支,然后输入的分支会被合并到主分支(被合并的分支并不会消失),在工作中一般是领导来进行合并,我们普通员工一般没有权限进行合并

  1. git merge 被合并的分支名称

image.png

删除分支

注意:不要乱删!!!一旦删除,这个分支就再也回不来了!!!

  1. git branch -d 分支名称

image.png

把本地分支推送到远程仓库

了解即可,后面会有简单的方式进行操作

1.先切换回分支

2.再在分支上执行命令

  1. git push
  2. 然后会弹出一行代码:
  3. git push --set-upstream origin purple
  4. git push --set-upstream 远程仓库别名 本地仓库名称
  5. 输入这行代码,即可推送分支

764b79ae8d7cef01627f5182b8aa71a.png

查看远程仓库变量名和url

  1. git remote -v

忽略清单

git默认情况下会管理目录下所有的文件
目录下有一些文件不需要被git管理,也不需要上传到远程仓库中
假设想要git来忽略某些文件需要用到忽略清单
比如vscode 工作区的设置 不应该被上传到服务器上
在我们初始化项目的时候 一定会新建一个忽略清单
一般的项目都要忽略什么文件 不需要我们自己想 好模版可以直接套用
不能忽略提交已经被提交过到 本地仓库的代码
.vscode
1.在本地仓库或vscode内右键新建一个忽略清单 .gitignore (中文意为忽略)
image.png
2.该文件内可以写注释,注释由#开头,
里面存放的就是想让git忽略的文件
工作中项目会提前准备好要忽略哪些文件 领导创建项目的时候就配置好了
支持正则表达式
忽略语法:.vscode/ /代表文件夹,这段代码表示忽略vscode这个文件夹

补充

image.png
退出方法:
1.按下ESC
2.英文输入法下输入:q 然后回车即可

git其他学习资料

git大全:https://gitee.com/all-about-git
Pro Git (中文版) :https://gitee.com/progit/
Git - Book :https://git-scm.com/book/zh/v2