1、 Git的结构
2、Git Github Gitee的区别
Git是版本控制工具,Github是代码托管中心,代码托管中心的任务:维护远程库
- 局域网环境下:GitLab服务器
- 外网环境下:Github Gitee
3、本地库和远程库的交互方式
两种场景:
1、团队内部协作
2、跨团队协作
3.1、团队内部协作
3.2、跨团队协作
4、Git命令行操作
4.1 本地库操作
4.1.1 本地库初始化
- 命令:
git add
git init
- 效果:
- 注意事项:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要随意修改!
4.1.2 设置签名
- 用户名:tom
- Email地址:GoodMonrning@atguigu.com
- 作用:区分不同开发人员的身份
- 辨析:这里设置的前面和登录远程库(代码托管中心)的账号和密码没有任何关系。
- 命令:
-
- 项目级别/仓库级别:仅在当前本地库范围内生效
git config user.name tom_pro #设置用户名
git config user.email goodMorning_pro@atguigu.com #设置邮箱
-
- 系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom_glb
git config --global user.email goodMorning_glb@atguigu.com
# 项目级别配置信息保存的位置:./.git/config
# 系统级别配置信息保存的位置:~/.gitconfig
cat ~/.gitconfig #查看配置文件内容
# 进入家目录
cd ~
配置信息如下:
【项目级别配置信息】
【系统级别配置信息】
-
- 级别优先级
-
-
- 就近原则:项目级别优先于系统级别,二者都有时采用项目级别的前面
-
-
-
- 如果只有系统用户级别的签名,就以系统用户级别的签名为准
-
-
-
- 二者都没有不允许
- 二者都没有不允许
-
4.1.3 添加提交以及查看状态操作
# 查看仓库状态
git status
#create/copy files and use "git add" to track
#意思是:使用git add命令去“跟踪/管理”create/copy 的文件
vim good.txt #编辑并生成一个good.txt文件
git status #再次查看 创建新文件之后的仓库状态
git add good.txt
git rm --cached good.txt #从暂存区将文件删除,但是不会删除工作区的文件
git commit good.txt #将文件从暂存区 提交到 本地库
set nu #显示行号(vi编辑器)
可以编辑提交的信息(相当于注释,提示本次操作提交文件的目的,做了哪些变动,方便后期查看)
git commit good.txt #将文件
暂存区没有什么要提交的,本地也没有新建文件
当修改已经提交到仓库的文件的时候,使用git status查看当前状态
缓存区显示 update操作,特别注意上图中的最后一行:use “git add” and/or “git commit -a”,对于一个从未进行追踪的新文件,使用git add对文件进行追踪操作,对于一个已经追踪过的文件,当文件有更新内容的时候,可以使用git add 将其添加到缓冲区,也可以直接使用git commit 进行提交操作。
4.1.4 git基本操作总结
- 状态查看操作:
git status
#作用:查看工作区、暂存区状态
- 添加操作
git add [filename]
# 作用:将工作区的“新建/修改”添加到暂存区
# eg:
git add good.txt
- 提交操作
git commit -m "commit message" [filename]
# 作用:将暂存区的内容 提交至 本地库
- 删除缓存区文件
git rm --cached good.txt #从暂存区将文件删除,但是不会删除工作区的文件
- 查看历史操作
git log
# 详细显示
git log --pretty=oneline
# 以好看的格式显示 每条记录占一行
git log oneline
# 更简洁的一种方式,缩短显示的哈希值
【git log效果】
git log多屏显示控制方式:
- 空格向下翻页
- b向上翻页
- q退出
git log --pretty=oneline
git log --oneline:该命令只显示历史版本,不显示在HEAD指针之后的版本
git reflog
HEAD@{移动到当前版本需要的步数} - 删除文件操作并找回
前进后退版本的本质:
进行版本管理的时候,有一个HEAD指针,通过移动HEAD指针来执行版本的前进、后退。
版本前进后退实操:
回退之后的效果图:
指针前进/后退——基于索引值操作
git reset --hard [哈希值(索引值)]
后退:使用~或^符号
使用^ 表示回退一步,n个表示回退n步
git reset --hard HEAD
使用~符号 表示回退n步
git reset --hard HEAD~n
【reset命令的三个参数对比】
soft 参数
- 仅仅在本地库移动HEAD指针
差暂存区内容,提示有变化
mixed参数
- 在本地库移动HEAD指针
- 重置暂存区
hard参数
- 在本地库移动HEAD指针
- 重置暂存区
- 重置工作区
git reset --hard HEAD
4.2 远程库操作
【课程传送门】