git 安装与常用命令
1 安装
1.1 选择对应操作系统安装
1.2
1.3 若下载非常慢, 可以把链接复制到迅雷下载
复制到迅雷
1.4 选择安装位置
1.5 剩下一直下一步即可.
1.6 桌面右键, 出现如下,表示安装成功
2 流程(核心)
1.1 工作区: 新增/修改代码后对应显示显示红色的文件/文件夹
-
开发程序代码的地方
-
写完可以提交到暂存区,然后才能放到版本库,不能直接放到版本库
1.2 暂存区: 全绿信息(内容全部在暂存区), 才执行commit
1.3 版本库: 只有被版本库控制的代码, 才被监听,所以可以回滚到任何一个版本
-
管理了历史的代码
-
必须从暂存区提交过来
图解
3 git常用命令
!#背景色#
常用命令list
0 初始化仓库
命令: git init
1 查看仓库状态 -> git status
2 把新增代码从工作区提交到暂存区
git add 文件名
git add 小圆点 # 把当前路径下所有改变都提交到暂存区
3 把代码从暂存区提交到版本库
git commit -m '加注释-要详细, 不加提交不了'
操作后,那么: 被git管理后,以后无论怎么更改,都可以回到现在这个状态
4 查看"执行git commit -m '注释'的"日志
命令: git log -> 查看结束按q退出
显示简短日志命令: git reflog
5 把工作区被git管理的文件恢复到跟当前版本库一样的状态, 但是在工作区新增的文件不管,因为其没有被git管理
使用背景: 当你在工作区对已经被git管理的文件做了一些修改时, 但是不想生效时用
命令: git checkout 小圆点
6 恢复到某个版本
作用: 指定版本库某个版本恢复到工作区
git reset --hard 版本号
3.1 初始化仓库 ->命令: git init
step1 找一个文件夹/新建一个文件夹->打开->右键->
step2 出现该窗口->这是一个命令窗口<不是cmd命令,写linux命令>
step3
step4 出现一个.git的文件夹, 表示这个git_manager_packages被git管理了.
3.2 设置全局用户->在仓库终端目录下
其可以对所有的仓库进行操作.
为什么需要这个? 因为我需要知道->代码谁谁修改,张三还是李四?
需要配置 1)用户名 2)邮箱
格式:
git config --global user.name '用户名'
git config --global user.email '邮箱'
如:
git config --global user.name 'user01'
git config --global user.email 'user01@qq.com'
3.2-1 执行命令
3.2-2 效果
3.3 设置局部用户->在当前仓库.git文件夹下
仅可对当前仓库进行操作.
没有配置局部用户,会用全局用户.
需要配置 1)用户名 2)邮箱
格式:
git config user.name '用户名'
git config user.email '邮箱'
如:
git config user.name 'local_user01'
git config user.email 'local_user01@qq.com'
step1
step2
效果:
3.4 查看仓库状态 -> git status 或 git status -s查看简约显示
演示1: 仓库未建任何东西时
演示2
在仓库下新建一个文件(任何格式文件), 用命令查看状态,会发现出现一个红色内容
说明:空文件夹是不会被管理的 ---如新建一个空文件,用命令查看状态,并没有多出红色内容
演示3
3.5 把新增代码从工作区提交到暂存区
git add 文件名 # 把新增代码从工作区提交到暂存区
git add 小圆点 # 把当前路径下所有改变都提交到暂存区
演示1
演示2
3.6 把代码从暂存区提交到版本库
git commit -m '加注释-要详细, 不加提交不了'
操作后,那么: 被git管理后,以后无论怎么更改,都可以回到现在这个状态
演示1
git status # 无红色和绿色内容,表示当前仓库下所有代码都被记录到版本库中了
3.7 小练习
演示3.7-1 在文件夹下的文件下新增任意字符.
演示3.7-2 git status
用该命令查看后会显示: 刚才操做的文件被修改了
->其颜色为红色, 说明还在工作区,没有提交至暂存区
->需提交至暂存区
演示3.7-3
分步提交至暂存区,代码库
演示3.7-4-1
删除该文件
演示3.7-4-2
3.8 查看"执行git commit 的"日志
命令: git log
显示简短日志命令: git reflog
到此: 共进行了三次 test_dir1/test02.txt 提交至版本库, 分别是新建时, 修改时, 删除时.
演示3.8-1
演示3.8-2
step3.8-2.1
step3.8-2.2
step3.8-2.3
step3.8-2.4
执行git log
发现Author变成了全局用户
3.8-3
演示git reflog --- 其比git log 显示的log简短
3.9 恢复到某个版本
作用: 指定版本库某个版本恢复到工作区
git reset --hard 版本号
演示
3.10
git log 与 git reflog区别2
演示
3.11 把工作区被git管理的文件恢复到跟当前版本库一样的状态, 但是在工作区新增的文件不管,因为其没有被git管理
使用背景: 当你在工作区对已经被git管理的文件做了一些修改时, 但是不想生效时用
命令: git checkout 小圆点
演示3.11-1
演示3.11-2 因为哪些新增有问题, 我要恢复到新增之前的状态
git checkout 小圆点
3.12 把暂存区的变化拉回工作区(绿变红)
命令: git reset HEAD 小圆点
4 如何设置: 某些文件不被git管理
背景: 项目中有一些文件,不需要被git管理,那么需要把其设置成忽略文件
如何做?
在仓库根路径下创建名为.gitignore的文件, 在文件里配置一些内容
演示4-1
演示4-2新建测试文件
因为是新建在git管理的包下, 新建后执行命令git status,这些新建的文件/文件夹会以红色字体的形式出现,等待被提交至暂存区.
演示4-3 在文件.gitignore中写 不想让git管理的 文件、文件夹.
注意: 已经被git管理的文件不能写在里面
文件.gitignore内怎么写
"""
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
eg:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
"""
演示4-4
执行命令: git status