Git
Git介绍
Git是一个开源的分布式版本控制系统(VCS:Version Control System),Github就是一个基于Git的代码托管平台
有什么用
- 公司内多人协同开发,或者用
SVN(Subversion),CVS(Concorrent Version System),好一点的公司会用gitlab自己搭建服务器 - 统计工作量(commit了几次)
使用分类
- Git Bash:Linux风格命令行
- Git CMD:Windows风格命令行
- Git GUI:图形界面的Git
版本控制分类
本地版本控制
顾名思义,每修改一次就另存为一个新文件,适合个人
集中式版本控制
所有版本数据都保存在单一服务器上,有安全风险,服务器一崩所有数据都会丢。代表:SVN,CVS,VSS
分布式版本控制
所有版本数据全部同步到本地的每个用户,只要有一个用户的设备没问题就可以恢复所有数据,但增加了本地存储空间的占用。有的公司不使用git就是为了防止员工拿着代码跑路。代表:Git(用来代替商业的BitKeeper),早期是为了辅助Linux,仅仅花了两周时间就成功开发
Linux常用命令
命令格式:command [-options] [parameter]
cd ..(change directory)返回上级目录touch index.njk新建文件,rm删除(还挺方便的嘞clear清屏,cmd是clsls(list)查看当前目录下的内容pwd(print work directory)查看当前工作目录mkdir "title"新建目录,rm -r "title"删除,-r表示递归地删除目录下的内容,删除文件夹时必须加此参数。-f表示强制删除mv "文件" "目录"移动文件history查看历史命令,exit退出
Git基本理论(核心)
工作区域
Git在本地有三个工作区域:
- 工作目录(Working Directory),有个隐藏文件夹.git,包含了Index和Repository(版本信息),初始化仓库时自动创建
- 暂存区(Index/Stage)
- 资源库(Repository/Git Directory)

如果再加上远程的git仓库(Remote Directory),就是四个工作区域
文件状态
Untracked:此文件在文件夹中,但并未加入git库,不参与版本控制,通过
git add状态变为StagedTracked:指Git跟踪的文件,在版本控制历史中有记录,可以分为以下两种状态:
- Staged:下一步就是提交
- Modified:文件内容已更改,但未被提交
Committed:表示文件已经被提交到仓库中,成为历史记录的一部分
实践

本地仓库搭建(建议不含中文)
- 新建项目目录,运行
git init - 克隆远程仓库
git clone [URL](URL是指地址栏内容+.git)- 只会clone默认分支,其他分支保持隐藏状态
git branch -a(all)查看所有分支git checkout "branch-name"切换
文件添加至暂存区
git add .表示添加所有文件,git add filename添加指定文件
查看文件状态
git status查看所有文件状态,git status filename查看指定文件状态
提交到本地仓库
git commit -m "message"提交暂存区中的内容到本地仓库(.git目录下),-m表示提交说明。每个commit都有一个唯一的哈希值,由提交的内容和元数据计算而来
有时不想把一些文件纳入版本控制中,如临时文件、日志文件、包含的敏感信息(API密钥)、第三方依赖库,下面介绍gitignore:
.gitignore
在此文件中列出需要忽略的文件和目录,Git会在进行版本控制操作时自动忽略这些指定的内容。格式很简单,每行列出一个要忽略的文件或目录的模式,这些模式可以是文件名、目录名或通配符:(去学正则表达式
1 | *.txt # 忽略所有 .txt 文件 |
补充.github/.gitee文件夹
是用来存放Github/Gitee特定配置文件和资源的文件夹,如一些与仓库操作、社区互动以及自动化流程相关的文件和设置,不会直接影响到代码,而是用于管理项目和协作
Push到远程仓库
git remote add origin "url"关联远程仓库git remote是用来操作远程仓库的命令,add是其一个选项,表示添加一个新的远程仓库进行关联origin理解为远程仓库的名字(在Git中,每个远程仓库都可以被赋予一个名称。同时因为clone时默认的名字就是origin,是一种约定俗成的名称),可以自己指定其他名称,并使用相应的名称在git push等命令中指定要操作的远程仓库- 那么就说明本地仓库可以关联多个远程仓库
- 使用
git remote add添加新仓库 git remote -v查看当前已关联的远程仓库- 如果想更改的话,运行
git remote set-url origin "new url"表示:新的url地址用于替换名为origin的仓库
- 使用
注意:以上的配置信息都保存在.git目录下的config文件中,也可以直接去编辑文件
其他命令
git pull是以下两个操作的组合:git fetch获取远程仓库的更新,但不会自动合并到当前分支git merge将获取的更新合并
示例:git pull gitee b拉取远程仓库gitee的b分支,合并到当前分支
自动化
将以下命令放在批处理文件(.bat)文件中,每次更新只需双击运行即可
1 | hexo -clean |
在cmd窗口中,运行hexo clean会报错:hexo : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\hexo.ps1,因为在此系统上禁止运行脚本。,权限问题,以管理员身份运行就可以。方法:输入cmd后,按下Ctrl + Shift + Enter即可,然后直接输入D:进入D盘,再cd D:\Personal\Blog\Hexo\Cx330就可以在cmd中运行辣