Git介绍
一、git介绍和安装
# 版本管理软件
-1 对代码版本进行管理 ---> 首页功能完成 ---> 课程功能完成 --> 可以回退到某个版本
-2 协同开发 --> 多人开发 --> 合并代码 ---> 可能会有冲突,解决冲突
# 版本管理软件:主流就两个
-git:现在用的最多(学git)
-svn:老
1.2 git与svn比较
- svn:cs架构 一个服务端,多个客户端,如果服务端挂掉,整个代码合并,提交代码就做不了了,只能本地开发代码
- git:分布式管理,装git的客户端,既可以当客户端,又可以当服务端,如果git远程仓库挂掉,本地可以继续做代码版本的管理
1.3 安装
安装git,就是个软件。
网址:https://git-scm.com/download/win
- 官网下载,一路下一步
- 在命令行中:git version 如果有反应,说明装好了
二、git,github,gitee,gitlab
# git :版本管理软件,可以做版本管理
# github:它是一个网站:https://github.com/ 全球最大的开源代码管理仓库,git远程仓库
-运营商不让访问
# gitee:中国最大的开源代码管理仓库(私有仓库)
-https://gitee.com/kitego/hashmart
# gitlab: 公司内部搭建自己的远程仓库,只在公司内部用,外网访问不到(到公司用这个多)
三、git使用流程
重学Git:https://www.cnblogs.com/liuqingzheng/p/15328319.html
Git基础:https://www.cnblogs.com/liuqingzheng/articles/17146214.html
- git 分3个区--->三个区的来回操作
- 工作区:存放代码的文件夹,只要工作区文件发生变(修改,新增,删除)
- 暂存区:工作的变更,提交到暂存区 git add . 把工作区变更提交到暂存区
- 版本库:暂存区内容,放到版本库,被版本管理---> git commit -m ''
四、git常用命令
# 0 再某个位置,右键---> git bash here ----> 打开命令窗口---> 等同于cmd---> 在这个命令窗口里可以执行 linux命令,来操作win
# 1 初始化仓库,在某个文件夹下执行
git init # 在当前文件夹下就会创建出 .git 文件夹,这个就会被git管理
git init xxx # 在当前路径下创建 xxx文件夹,并用git管理xxx文件夹
# 1.1 配置用户
#### 全局配置 以后所有的版本提交时,都用这个用户和邮箱--> C:\Users\oldboy\.gitconfig
git config --global user.name '用户名'
git config --global user.email '用户邮箱'
#### 局部配置 只在当前 仓库生效--> 仓库路径下 .git 文件夹下 config文件中配置的
git config user.name '用户名'
git config user.email '用户邮箱'
# 2 查看仓库状态
git status # 红 绿
# 如果是红色,表明是在工作发生了变化,没有提交到暂存区
# 如果是绿色:表明,暂存区数据没有提交到版本库
# 如果没有东西,表示当前目录下所有文件被git管理了,被版本管理了
# 3 把工作区变更,提交到暂存区
git add . # 当前目录下所有变更都提交
git add 1.txt # 只提交当前目录下 1.txt这个文件的变更
# 4 把暂存区内容,提交到版本库(只要被版本管理的东西,你尽管操作,后期都能回退回来)
git commit -m '我的第一次,提交' # 如果不设置用户,提交不了,不知道是谁提交
# 5 查看版本信息(提交过哪些版本,注释是什么)【可以按作者,时间过滤】
git log
git reflog
---------------了解-----------
# 6 把工作区变更回退
git checkout . # 当前路径下所有
# 7 把暂存区内容,拉回到工作区(由绿变红)
git reset HEAD
# 8 从版本库拉回到暂存区(版本库内容回退,变绿)--->需要写上一个版本
git reset --soft 1603edf06d7d302ba50c22373c963af15725eda5
# 9 把版本库退回到工作区(版本库内容回退,变红)
git reset --mix 1603edf06d7d302ba50c22373c963af15725eda5
# 10 把版本库直接完整回退会工作区(增加的也没了)
git reset --hard 1603edf06d7d302ba50c22373c963af15725eda5
# 11 回退到某个版本的样子(可能会用)
git reset --hard 19f5891
# 总结:
git add
git commit -m ''
# 只要被版本管理的文件,即便以后删除了,也能回来
# 空文件不会被git管理
五、git忽略文件
# 写项目,会有一些文件或文件夹,不希望被git管理,忽略掉它, 不被git管理
-.idea
-node_models
-xx
# 需要写个忽略文件 .gitignore 必须叫它,没有后缀名
在里面写忽略的文件或文件夹,写法如下
.idea # 忽略idea文件夹及其下面所有的文件
lqz.txt # 忽略仓库中所有的lqz.txt
/lqz.txt # 忽略当前路径下的lqz.txt
a/lqz.txt # 只忽略当前路径下a文件夹下lqz.txt
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
# 给路飞做忽略文件
.idea
*.log
__pycache__
*.pyc
scripts
# 补充:
__pycache__:是对文件的一些缓存,只要文件启动就会创建这个文件夹