27_GitGitHub
一、git和github
- git和github是两个内容
- 就像java和javascript
- 就像周杰和周杰伦
- 掌握几个概念
- 本地: 我自己的终端
- 远程: 在网络另一头的终端
- 仓库: 被git管理的文件夹
- git
- 官方: 分布式的版本管理工具
- 我们平时在写代码的时候
- 代码经常要修改
- 如果不保存多个版本的文件夹,一旦出bug,就回不去正常版本了
- 如果保存多个版本的文件夹,不知道每个版本修改的内容
- git就是帮我们管理我们代码的版本的工具
- 可以记录我们所有的版本信息
- 既然是工具,就要先安装才能使用
- github
- 是一个网站的名称
- 里面注册了很多的开发人员,并且是全世界的开发人员
- 这个网站可以让开发人员把代码上传上去
- 你可以在上面下载被人上传的代码
- 也可以把你写好的插件/库/项目上传上去,给别人用
- github网站只接收git上传的代码,所以名字有git这几个字
- 是一个世界级的网站,英文的,服务器在国外
- 国内也有很多这样的网站,比较有名的是:码云
- 码云:https://gitee.com
二、安装git
- 安装git
- git是一个工具,所以需要安装才能使用
- 官网下载:https://git-scm.com
- 下载完成以后,双击Git-2.22.0-64-bit.exe
- 一直next,就可以了
- 检测git
- 在命令行输入: git --version
- 出现版本号就是安装成功了
- 使用git
- 方法1:
- 可以在任意位置鼠标右键
- 选择git bash here,就可以打开git操作的命令行工具
- 方法2
- 可以在任意位置打开cmd
- 在命令行可以进行git操作
- 一般使用方法1,方法1彩色的好看,但其实两种方法都可以
- 方法1:
三、git使用流程
- 自报家门 – 一个终端做一次就可以了
- 打开命令行工具
- 输入:
- 第一个指令: git config --global user.name “你的开发名”
- 第二个指令: git config --global user.email “你的工作邮箱”
- 检测是否配置成功:
- 指令: git config --list
- git初始化
- 就是把我们的项目文件交给git管理
- 在项目根目录运行
- 指令:git init
- 在项目目录中就多了一个隐藏的文件夹.git
- 里面会记录你的项目的所有版本信息
- 不能删除,删除以后你的版本信息就丢失了
- 我们的项目文件夹被分成了三个区域
- 工作区:就是我们能看见的写代码的地方
- 暂存区:就是形成一个历史版本
- 本地仓库: 历史版本的存放区域
- 代码从本地上传到远程: 工作区=>暂存区=>本地仓库=>远程仓库
- 代码从远程下载到本地: 远程仓库=>本地仓库
四、从工作区添加到暂存区
- 存储到暂存区的不是文件,是文件的变化
- 指令
- git add 要放到暂存区的文件路径
- git add 要放到暂存区的文件夹路径
- git add --all 把所有文件放到暂存区可简写: git add .
- 查看git管理的文件的状态
- 指令: git status
- git不能管理空文件夹
五、从暂存区到本地仓库
把暂存区内容放到本地仓库形成一个历史版本
- 指令: git commit -m “你的版本描述信息”
查看历史版本
-
查看当前版本之前的历史版本
- 指令: git log
- 显示版本信息:
commit 2669935eca09795ce6543cddde61a465ab532300
Author: aaa 123456@qq.com
Date: Thu Apr 28 10:51:49 2022 +0800
first banben - 版本号: 2669935eca09795ce6543cddde61a465ab532300
- 作者信息: aaa 123456@qq.com
- 日期:Thu Apr 28 10:51:49 2022 +0800
- 版本描述信息: first banben
-
查看所有的历史版本
- 指令: git reflog
- 显示版本信息
e09b6ed (HEAD -> master) HEAD@{0}: commit: third 3333
4a90ccc HEAD@{1}: commit: second banben-swiper
2669935 HEAD@{2}: commit (initial): first banben - 版本号前几位:e09b6ed
- HEAD: 当前版本
- HEAD@{n}: 当前版本的前n个版本
-
版本回退
-
指令: git reset --hard 版本号
- 回退到指定版本号
-
指令: git reset --hard Head
- 回退到最新版本
-
指令: git reset --hard Head^
- 回退到指定版本的前一个版本,几个^就是前几个版本
-
六、远程仓库
- 把代码从本地仓库上传到远程仓库
- 指令:给远程仓库地址一个别名
- git remote add 别名 远程仓库地址
- 指令:把本地仓库上传远程仓库
- git push -u 远程仓库地址或者别名 分支名
- 远程仓库地址或者别名:
- 例如: https://gitee.com/xingbiao7676/sz2202first.git
- 分支名
- 仓库默认都有一个主分支:master
- 指令:给远程仓库地址一个别名
- 把代码从远程仓库下载到本地仓库
- 情况1:以前没有下载过
- git clone 远程仓库地址
- 情况2:以前下载过
- 拉取远程版本并合并到本地版本
- git pull 远程仓库地址或者别名
- 情况1:以前没有下载过
七、分支操作
- 创建分支
+ 指令:以当前版本为副本,重建一个分支
+ git branch 分支名 - 查看分支
- 指令:查看当前项目有哪些分支
- git branch
- 输出中带*表示当前分支
- 切换分支
- 指令:切换到你要操作的那个分支
== git checkout 分支名 - 删除分支
- 指令:删除本地分支
- git branch -d 分支名
- 合并分支
- 指令:把其他分支合并到当前分支
- git merge 要合并的分支名 -m ‘版本描述信息’
- 上传到远程分支
- 指令:把本地分支上传到远程分支
- git push -u 远程仓库地址或者别名 本地分支名:远程分支名
- 如果只写本地分支名,那远程分支默认同名
- 删除远程分支
- 指令:把远程的分支删除
- git push --delete 远程仓库地址或者别名 远程分支名
- 指令:切换到你要操作的那个分支
八、git的忽略文件
如果一个项目里面有一些文件和文件夹不需要git管理
- 那么就可以在项目根目录书写一个git的忽略文件
- 文件名固定是: .gitignore
- 在里面可以写你要忽略的文件或者文件夹路径
九、 删除暂存区文件
如果想删除暂存区文件
- 指令: git rm --cached 文件路径
十、替换前一个版本
用现在提交的版本替换前一个版本
- 指令:git commit --amend -m “新版本描述信息”
十一、分支操作
- 创建分支:
- git branch 要创建的本地分支名
- 切换分支:
- git checkout 要切换的本地分支名
- 创建并切换分支 = 创建分支+切换分支
- git checkout -b 本地分支名
十二、pull和fetch的区别
- 拉取分支并合并到当前分支
- git pull 远程仓库地址或者别名 分支名
- pull = fetch + merge
- 拉取远程分支
- git fetch 远程仓库地址或者别名 分支名
十三、后悔操作
- 查看工作区和暂存区文件的区别
- git diff
- 查看暂存区和本地仓库文件的区别
- git diff --cached
- 用最新版本的内容恢复到暂存区,不影响工作区
- git reset HEAD – 文件路径
- 用暂存区内容来回复工作区
- git checkout – 文件路径