1. git
git是一个版本控制系统, 是一个软件(命令行工具), 她在工作时分为三个区域: 工作区、暂存区和git仓库.
- 工作区: 处理工作的区域
- 暂存区: 已完成的工作的临时存放区域,等待被提交
- git仓库: 最终存放的区域
下载地址: git-scm.com/downloads
2. 配置用户信息
-
安装完git之后, 首先要设置自己的
用户名
和邮箱地址
-
如何获取git账号 : 可以在
码云
注册一个账号
码云地址:gitee.com/ -
配置用户信息命令如下:
- git config --global user.email "你的码云账号邮箱"
- git config --global user.name "你的码云用户名(可以随便写)"
通过 git config --global user.name 和 git config --global user.email 配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
除了使用记事本查看全局的配置信息之外,还可以运行如下的终端命令,快速的查看 Git 的全局配置信息:
// 查看所有的全局配置项
git config --list --global
// 查看指定的全局配置项
git config user.name
git config user.email
3. git工作流程与常用命令
Git命名 | 作用 | 详细描述 |
---|---|---|
git init | 初始化git仓库(类似于玩游戏新建一个存档文件) | 在当前文件夹中新建一个 .git隐藏文件夹 |
git add . | 添加文件信息(相当于游戏开始存档) | 把要提交的文件的信息添加到暂存区中(常用 ) |
git commit -m"描述信息" | 确认添加信息 (确认存档) | 将暂存区中的文件提交到本地仓库中(常用 ) |
git config --global user.email "Your email" | 设置邮箱 | 第一次使用git会让你输入邮箱 |
git config --global user.name "Your Name" | 设置用户名 | 第一次使用git会让你输入用户名 |
git reset --hard 版本号 | 版本回滚 (游戏回档) | 可以让你的文件回退到历史某一个版本 |
git log | 查看详细日志(存档日志) | 会显示你的每一次存档信息 |
git log --oneline | 查看简略版日志 | 快速查看版本号 |
git reflog | 查看所有日志(包含回滚日志) | 回档回错了会用到 |
3.1 主要工作流程
-
1.新建项目文件夹
-
2.进入文件夹
-
3.初始化仓库:git init
-
4.编码
-
5.添加文件信息: git add .
-
6.确认添加信息:git commit -m"描述信息"
-
7.查看详细日志信息:git log
-
8.查看简略日志信息:git log --oneline
-
9.版本回滚:git reset --hard 版本号
1.1.1 新建文件夹
1.1.2 进入这个文件夹,点击右键选择Git Bash Hear,打开git命令行工具
1.1.3 输入命令 git init
初始化git仓库
1.1.4 编码
456三个步骤是开发中不断重复的环节
1.1.5 添加存档:使用git add .
- 注意:这个命令只是将文件信息添加到暂存区,还没有真正存档,需要使用git commit命令确认存档才可以
1.1.6 确认存档:使用git commit -m"描述信息"
以上流程是实际开发中主要使用流程
1.1.7 查看详细提交信息:git log
1.1.8 查看简略信息:git log --oneline
1.1.9 版本回滚:git reset --hard 版本号
有A版本和B版本, 你发现A版本错了,要回退到B版本,可以用上面的方法, 但当你突然清空了git界面, 突然发现回退之前的版本A是对的, 想要再回退到A, 此时界面是空的, 找不到A版本的版本信息了,这时需要借助
git reflog
指令, 她能查看所有日志(包含回滚日志)
4. git远程仓库使用流程
4.1 远程仓库介绍
1.什么是远程仓库?
-
远程仓库其实就是远程的服务器,帮我们存储代码的
- 本地git存储:一旦你电脑丢了或者硬盘损坏,直接拉胯
- 远程git存储:如果你电脑坏了换了一个新的,只需要从网上重新下载即可
2.常见的远程仓库有哪些?
-
(1)github:免费
学习时候可以用,工作中有的小公司为了省钱也会用
-
(2)gitlab
-
(3)码云
码云官网:gitee.com/
-
(4)你们公司自己机房的服务器(工作中遇到)
- 以上远程仓库使用流程几乎一致
4.2 远程仓库使用流程
创建:会在服务器上创建一个文件夹, 并且在文件夹里自带加.git, 即用了远程仓库, 就不用再init了,远程仓库已经自带Init了
4.2.1 在码云网站建立远程仓库
4.2.2 将远程仓库克隆到本地
克隆命名 : git clone 仓库网址
仓库网址:
4.2.3 本地编写代码
: git add . 与git commit -m“添加文件信息“
4.2.4 将本地代码推送到远程
(每天下班一次)
流程为:
4.2.5 将远程代码拉取到本地
(每天上班一次)
git pull
-
git pull:拉取,用于多人开发。比如别人写的代码文件提交到远程仓库,通过这个命令就可以将远程仓库代码拉取到本地
- 这个命令不会拉取所有代码,只是拉取远程上面新增的代码(把别人写的代码合并到你的本地)
- 这个命令,在多人开发的时候建议
每天
上班前执行一次
-
git clone:克隆,将整个远程仓库克隆到本地
- 这个命名相当于拉取所有的代码(将整个远程仓库文件夹copy到你的本地)
- 这个命令一般只会在
项目开始
的时候执行一次
4.3 多人开发配置流程
4.4 多人开发冲突解决
多人开发所有的冲突主要分为三种
(1)push的时候没有pull
(2)文件冲突
(3)代码冲突
1.push的时候没有pull : push的时候只要出现以下这种错误,就是因为别人已经push过了。
- 解决方案,底下提示已经告诉你了 ,
要先pull,然后才能push
场景: 有两个程序员A和B, 她们从远程仓库里克隆下来相同的文件, 文件里有a, aa, b三个文件,A在a文件里写代码需求, B在b文件里写代码需求, 有天, B程序员有事没来, A写完代码push后下班了, 第二天B来了,但是他忘了Pull了, 然后写在b文件里写了一天的代码,下班准备push的时候发现出错了,是因为此时远程仓库里的文件a已经更新了,所以B程序员需要先Pull一下最新的文件a, 然后再push 就可以了.
2.文件冲突 : 两个人新建一样的文件
- 实际开发中,git一般不会出现文件冲突的。 因为在项目分工的时候,一般会以模块页面为单位。(你写你的,我写我的。不会让两个人写一个文件)
3.代码冲突 : 两个人在同一个文件
里面写不同的代码
- 实际开发中,一般一个文件只由一个人维护。 很少出现一个文件,多个人同时写代码情况。
注意: 无论是文件冲突还是代码冲突,都可以使用下面方式解决
- ==
注意点
== : 那个人解决冲突之后,一定要在第一次时间: add 、commit 、push 。 然后其他人同时 pull .
4.5 远程仓库SSH配置
1,远程仓库有两种访问方式,分别是HTTPS
与SSH
-
HTTPS:
零配置
;但是每次访问仓库时,需要重复输入 Gitee 的账号和密码才能访问成功(实际你可能只输入一次,然后windows系统自带保存功能, 会把你登录的账号密码放到控制面板->凭据管理器->Windows凭据->普通凭据中) -
SSH:
需要进行额外的配置
;但是配置成功后,每次访问仓库时,不需重复输入 Gitee 的账号和密码- 实际开发推荐使用SSH方式访问远程仓库
2.SSH 介绍
-
SSH key 的作用:实现本地仓库和 Github 之间免登录的加密数据传输。
-
SSH key 的好处:免登录身份认证、数据加密传输。
-
SSH key 由两部分组成,分别是:
- id_rsa(私钥文件,存放于客户端的电脑中即可)
- id_rsa.pub(公钥文件,需要配置到 Github 中)
3.SSH配置流程
- (1)打开 Git Bash
- (2)输入命令: ssh-keygen -t rsa -b 4096 -C "你的码云邮箱"
- (3)连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
(4)使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
(5)在你的远程仓库网址, 点击头像 -> 设置 -> SSH 公钥 -> 粘贴
4.6 远程仓库使用流程总结
5. git分支使用流程
Git命名 | 作用 | 详细描述 | |
---|---|---|---|
git branch | 查看当前工作分支 | 无 | |
git branch 分支名 | 新建子分支 | 新建一个小号存档,把当前存档备份到小号中 | |
git checkout 分支名 | 切换工作分支 | 切换当前的账号(换小号刷装备) | |
git merge分支名 | 合并分支 | 把子分支代码合并到主分支(小号刷得装备移到大号上面) | |
git branch -d 分支名 | 删除子分支(慎用) | 删除小号 |
5.1 什么是分支
-
1.什么是分支?
- 分支(branch)相当于给你的远程仓库(主分支master)代码copy一份,然后我们在这个copy的代码上进行开发。等功能做好之后,再把分支的代码推送到主分支.
-
2.为什么要有分支?
-
a.举例1:比如你的网站第一个版本已经做好发布了,功能也很稳定。现在准备新增一些功能开发2.0版本,这时候如果你在原本稳定代码上工作,万一出现bug就会对原先稳定的代码造成影响。所以我们需要将原先代码copy一份进行开发,等2.0版本功能做好之后再和原先的1.0代码合并(相当于发布2.0正式版本)
-
b.举例2:比如你的项目1.0版本已经正式上线,然后突然出现了bug,如果我们直接在原先代码修复,就会影响其他功能。一般我们就可以建立一个分支(把原代码copy一份),等bug修复完毕之后。再与主分支合并,这样就可以很好的修复bug。一般这种版本称之为 1.x (1.1 、1.2、 1.3)
-
5.2 分支使用流程
5.2.1 新建仓库
,就会有一个默认的master分支
5.2.2 新建分支
git branch 分支名
5.2.3 切换分支
git checkout 分支名 (创建分支之后,你的代码默认还是在主分支,需要切换工作分支到子分支)
5.2.4 在新的分支上进行操作
- git add .
- git commit -m“描述信息”
5.2.5 合并分支
(功能做完了,开始发布正式版本了,就把分支代码合并到主分支)
注意:合并分支,需要把当前工作分支切换到主分支才可以
5.2.6 删除分支
:git branch -d 分支名
(慎用)
- 注意:删除分支,也需要切换当前工作分支为主分支
- git branch : 查看当前仓库的分支状态
5.2.7 推送与拉取分支代码到远程仓库
-
1.查看远程分支:
git remote show 仓库别名
-
2.推送分支代码到远程仓库 :
git push -u origin 新分支名称
- 小技巧 : 根本不需要记这个指令, 直接
git push
即可。 如果是分支代码,你的git会自动给你提示,并且在下方告诉你推送这个分支正确的命名是什么。 到时候直接 CV 即可。
- 小技巧 : 根本不需要记这个指令, 直接
-
3.拉取某个远程分支到本地仓库:
git pull origin 分支名