目录
4.2、系统配置:git config --system --list
4.3、本地配置:git config --global --list
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
在团队开发中git是必不可少的,它是目前为止最流行的版本控制工具
1、版本控制
版本控制:是在开发过程中用于管理我们对文件、目录、工程等内容的修改历史,方便查看历史更改纪录,备份以便以前的版本。
-
实现跨区域多人协同开发
-
追踪和记载一个或多个文件的历史记录
-
保护源代码和文档
-
统计工作量
-
并行开发,提高效率
-
追踪记录整个软件的开发过程
1.1、本地版本控制
记录文件的每次更新,可以对每个版本做一次备份,适合个人
1.2、集中版本控制 - -SVN
所有版本数据都保存在服务器上,协同者从服务器上同步更新或上传自己的修改
需要联网才可以看到
集中式版本控制系统,都有一个统一的版本号,放在一个统一的服务器上,工作时把最新的版本的代码拉取到电脑上,代码完成后在把写完的代码推送到服务器上,由于所有的操作都需要服务器的支持,对网络要求比较大,而且如果服务器里的数据出了问题,那么所有的数据都会丢失,本机客户端仅保存当前版本的信息。
1.3、分布式版本控制 - -Git
分布式版本控制系统,每个人的电脑都相当于服务器,当你拉取仓库的代码后,你的电脑就是一个完整的版本库,工作时不需要联网,所有版本都在自己的本机里,当你想把自己的代码提交到主仓库时,只需要在联网时合并推送到主仓库就可以了。
2、核心知识
git在本地分为三个区域,分别为工作区、缓存区和资源区(本地),其实还有一个远程的一个仓库区,但不在本地就不做过多解释
工作区:平时放项目代码的地方,包括git已经管理的文件区域和新增以及修改的文件区域
缓存区:用于临时存放改动的代码,它本质上是一个文件,把工作区的部分或者全部已经确认需要保存的文件提交至暂存区,先保存一下,如果确认好了可以直接提交到本地仓库中,如果暂时不能做决定可以暂时先放到暂存区,等待下一步操作。
资源区:又称作版本库或仓库区,将某一个历史节点的保存文件列表当做是一个版本,这里面有你提交到所有版本的数据,其中的HEAD指针默认指向最新放入仓库的版本
仓库区:远程的仓库,托管代码的服务器,可以是Gitee、GitHub
git的工作流程:
-
在工具区中增加或修改文件
-
将新的版本代码添加到缓存区 git add .
-
将缓存取得文件提交到远程仓库 git commit
3、基础文件命令
Git Bash :命令和Linux相似
-
cd :改变目录
-
cd . . :回退上一级目录
-
pwd :显示当前所在目录路径
-
ls\ll :列出当前目录中的所有文件
-
touch : 新建一个文件
-
rm :删除一个文件
-
mkdir :新建一个文件夹
-
rm -r :删除一个文件夹
-
mv :移动文件
-
reset :清屏、初始化
-
clear :清屏
-
history :查看历史命令
-
exit :与i出
4、基础配置
设置用户名和密码:
git config --global user.name "moon" // 设置全局用户名
git config --global user.email "2597213671@qq.com" // 设置邮箱
这里的 --global
为全局配置,如果要在特定的的项目中使用不同的名称,那就不使用该参数,只为当前所在仓库配置。
Git相关的配置文件:
-
全局配置文件:
C:\Users\你的用户名\.gitconfig
-
系统配置文件:
你的安装目录\Git\etc\gitconfig
4.1、查看配置 :git config -l
4.2、系统配置:git config --system --list
查看系统配置
4.3、本地配置:git config --global --list
查看当前用户配置
4、项目搭建
4.1、本地仓库搭建
两种方式:
创建一个新仓库
你需要新建一个存放版本库的目录,然后进入到该目录所在路径,然后执行:
如果在目录中看到包含有.git
的隐藏目录,那就证明创建成功
# 在当前目录新建一个Git代码库
git init
克隆远程仓库
# 克隆一个项目和它的所有版本信息
git clone [url] # https://gitee.com/xuande-hk/xuande-hk.git
5、基本操作命令
用git命令控制git工作目录下文件状态的转换
1、git add (工作区 - -> 暂存区)
2、git commit (暂存区 - -> 本地仓库)
Clone:克隆,就是将远程仓库复制到本地仓库 Push:推送,就是将本地仓库代码上传到远程仓库 Pull:拉取,就是将远程仓库代码下载到本地仓库,并将代码 克隆到本地工作区
5.1、基本步骤实现
1、创建——touch ttt.txt
2、查看状态——git status
3、将文件所有的修改添加到暂存区——git add 文件名|通配符.
3、提交文件到仓库——git commit -m "注释内容"
4、查看文件提交日志——git log
5、文件修改后的提交——git commit -m "update ttt"
1)创建文件,查看状态
目前文件位于本地仓库下
2)文件添加到暂存区
3)暂存区提交到本地仓库
4)查看文件提交日志
5)文件修改后重新提交
5.2、提交日志的相关命令
命令形式:git log [option]
option:
-
--all:显示所有分支
-
--pretty=oneline:将信息提交为一行
-
--abbrev-commit:使得输出的更简短
-
--graph:以图的形式显示
1)git log命令
提交次数过多的话,信息太过钻乱
2)git log --pretty=oneline命令
设置行数为一行
3)git log --pretty=oneline --abbrev-commit命令
优化
git log --pretty=oneline --abbrev-commit --all
5.3、回退版本
版本切换命令:git reset --hard [commitID]
将命令输入后,版本会回退到文件创建状态,修改的内容就没了
查看已经删除的提交记录
git reflog
5.4、添加文件至忽略列表
1)创建一个.gitignore文件
2)输入内容*.a
表示后缀名为.a的文件不需要git管理
5.5、忽略文件的常见格式
# 所有以.a 结尾的文件讲被忽略(递归)
*.a
# 不管其他规则怎样,强制不忽略 lib.a
!lib.a
# 只忽略 文件 TODO (注意这里是文件)
/TODO
# 忽略 build文件夹下所有内容(递归) 这里是文件夹
build/
# 忽略 doc 目录下以 *.txt 结尾的文件 (不递归)
doc/*.txt
# 忽略 doc 目录下以 *.pdf 结尾的文件 (递归)
doc/**/*.pdf
5.6、删除一次提交
1)git log找到要删除的提交的上一次提交的id
2)命令:git rebase -i 9a3f2a7e0e5d39ff0e2527b42f6fb10c00b4a758
3)输入i进入编辑模式
将pick改成drop
5.7、误删后如何恢复
查看日志找到提交id
回退:git reset --hard 08428f6