了解git前,先认识一个概念
什么是版本控制
版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。
总结:历史记录、检入检出控制、分支和合并
版本控制分类
什么是GIT
GIT是目前世界上最先进的一款免费、开源的分布式版本控制系统
GIT的区域
工作区、暂存区、版本库、远程仓库
- Workspace:工作区,就是平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息的一个虚拟空间
- Repository:仓库区(版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换(github,gitee等)
Git工作区中文件的状态
Git工作区中的文件存在两种状态:
-
untracked 未跟踪(未被纳入版本控制)
-
tracked 已跟踪(被纳入版本控制)
1)Unmodified 未修改状态
2)Modified 已修改状态
3)Staged 已暂存状态
注意:文件的状态会随着我们执行Git的命令发生变化
GIT的常用功能:
代码回溯:Git在管理文件过程中会记录日志,方便回退到历史版本
版本切换:Git存在分支的概念,一个项目可以有多个分支(版本),可以任意切换
多人协作:Git支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过Git就可以管理和协调
远程备份:Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取
GIT的工作流程
git的工作流程一般是这样的:
1、在工作区中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区;
3、将暂存区的文件按要求提交到git仓库。
GIT的使用
git客户端
Git Bash 可以执行linux命令的git控制台
Git CMD 支持windows命令的git控制台
Git GUI git的图形化界面
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息
设置用户信息
git config --global user.name "lisi"
git config --global user.email "18607666180@163.com"
查看配置信息
git config --list
注意:上面设置的user.name和user.email并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置
本地仓库操作
本地仓库常用命令如下:
-
git status 查看文件状态
-
git add 将文件的修改加入暂存区 (掌握)
-
git reset 将暂存区的文件取消暂存或者是切换到指定版本
-
取消暂存命令格式:git reset 文件名
-
切换到指定版本命令格式:git reset --hard 版本号
-
git reset --hard HEAD^ HEAD是指向当前仓库的,^代表上一个版本
-
git reset --hard HEAD~3 HEAD~3代表回滚master前三个版本
-
-
-
git commit 将暂存区的文件修改提交到版本库 (掌握)
-
git log 查看日志 (掌握)
远程仓库操作
远程仓库的一些操作,具体包括:
-
git remote 查看远程仓库
-
git remote add 添加远程仓库
-
git clone 从远程仓库克隆 (第一次与远程仓库连接)
-
git pull 从远程仓库拉取 (拉取远程仓库的代码)
-
git pull origin master
-
git push 推送到远程仓库 (提交到远程仓库)
-
git push origin master
分支操作
具体命令如下:
-
git branch 查看分支
-
git branch -r 列出所有远程分支
-
git branch -a 列出所有本地分支和远程分
-
-
git branch [name] 创建分支
-
git checkout [name] 切换分支
-
git push [shortName] [name] 推送至远程仓库分支
-
git merge [name] 合并分支
标签操作
标签相关的命令:
-
git tag 查看标签
-
git tag [name] 创建标签
-
git push [shortName] [name] 将标签推送至远程仓库
-
git checkout -b [branch] [name] 检出标签
使用须知
1、创建本地空仓库:git init
init:初始化当前目录为仓库,初始化后会自动将当前仓库设置为master
创建本地仓库的条件是需要一个空目录,然后在空目录中初始化你的项目
执行后该目录下出现了.git目录,这样便是成功创建了
2、连接远程仓库步骤:
2.1 如果第一次访问,需要执行如下两个操作
git config --global user.name "zhangsan"
git config --global user.email "zhangsan@126.com"
2.2 创建仓库的连接信息
创建 git 仓库:
git clone https://gitee.com/illusionai/phase-55-reggie.git 创建本地仓库和远程仓库的连接
#此步骤第一次操作,需要输入用户名和密码 (为码云的用户名和密码 (不是中文名字))
git add README.md 添加文件到本地仓库(自己新建需要添加的文件)
git commit -m "first commit" 把添加的文件提交到本地仓库
git push -u origin "master" 把本地仓库的数据上传到远程仓库