文章目录
一、何为Git
在了解Git之前先来认识一下什么叫“版本控制”
- 版本控制
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。即它是一种管理工具。
他的功能有:- 实现跨区域多人协同开发
- 追踪和记载一个或者多个文件的历史记录
- 组织和保护你的源代码和文档
- 统计工作量
- 并行开发、提高开发效率
- 跟踪记录整个软件的开发过程
- 减轻开发人员的负担,节省时间,同时降低人为错误
简单说就是用于管理多人协同开发项目的技术。
没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!我们就迫切需要一个版本控制工具!
在开发过程中,多个人或一个人对一个或多个项目进行多次的修改,但每次修改不都是尽心如意的,也有修改失败的情况,那么就需要进行版本的回滚,即回归到之前的版本;若修改的很好,也可通过版本工具进行保存,上传,让同伴也知道你修改了什么。
常见的版本控制工具
- Git
- SVN(Subversion)
- CVS(Concurrent Versions System)
- VSS(Micorosoft Visual SourceSafe)
- TFS(Team Foundation Server)
- Visual Studio Online
其中目前最常用的是Git和SVN这两种版本控制工具
. 版本控制工具的分类
1. 本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,
或是记录补丁文件,适合个人用,如RCS。
就是将本地文件进行该检查,保存在本地目录之下,
每当文件有更新,他就会记录补丁文件并将其保存下来,
但是,由于是保存在自己的电脑上,其他人并不能得到
他的文件,只能通过硬件作为中间传送介质
或者通过网络发送给某人
2. 集中式版本控制(代表:SVN)
集中式版本控制是指为了让所有用户
或者说让有权限的用户可以随意访问,
并能得到自己想要的版本内容的一种方式;
即,将所有的版本数据都保存在一个服务器上
(如果工作了,一般是指公司的服务器),
协同开发者(和你一起开发同一个或者同几个项目的人)
从服务器上同步更新或上传自己的修改之后的东西。
集中式版本控制的优点:
- 采用集中式,易于管理,保证安全性;
- 管理方便,逻辑明确,理念符合常规思维
- 代码的一致性高
- 适合人数不多的项目开发
- 允许一个文件有任意多的可命名属性,会关注所有的文件类型
- 支持二进制文件,更容易处理大文件
- 支持空目录。
缺点:
-
服务器压力太大,数据库容量暴增
-
必须连接在服务器上,否则基本不能工作、提交、对比、还原等
-
不适合开源开发
-
如果这个服务器损坏,就会丢失所有的数据
-
分布式版本控制(代表 Git)
Git就是将所有版本都下载到自己的本地中,所有用户和远程服务器中的代码都是一样的,都拥有所有的版本信息,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
Git的优点: - 适合分布式开发,强调个体 - 公共的服务器压力和数量都不会太大 - 速度快, 成熟的架构,开发灵活 - 任意两个开发者之间可以很容易的解决冲突 - 离线工作,管理代码成本低,不需要依赖服务器 - 部署方便。基本上下个命令就可以用 - 良好的分支机制,可以让主干代码保持干净 Git的缺点: 用户能得到所有的版本信息,有很大的风险
二、 Git安装和环境配置
1、安装
过一会会直接弹出来
没有就点击这里,下载对应的版本
接下来就无脑安装即可(可以适当的换一下安装目录)
也可以去看一下这篇博客
Git安装
安装完成后应该会看到菜单栏中会有这个
或者在桌面右击会看到Git选项
Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多
Git CMD:Windows风格的命令行
Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令
2、Linux常用命令
平时一定要多使用这些基础的命令!
1)、cd : 改变目录。
2)、cd . . 回退到上一个目录,直接cd进入默认目录
3)、pwd : 显示当前所在的目录路径。
4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。
7)、mkdir: 新建一个目录,就是新建一个文件夹。
8)、rm -r : 删除一个文件夹, rm -r src 删除src目录
rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。
10)、reset 重新初始化终端/清屏。
11)、clear 清屏。
12)、history 查看命令历史。
13)、help 帮助。
14)、exit 退出。
15)、#表示注释
3、Git环境配置
所有的配置文件,其实都保存在本地!
查看所有的配置
随便在一个文件夹或者桌面中右键,打开Git Bash Here,输入下面的命令
git config -l
之后就会看到
- 查看不同级别的配置文件:
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
-
Git相关的配置文件:
1)、Git\etc\gitconfig : Git 安装目录下的 gitconfig --system 系统级 2)、C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局 (找自己对应的文件夹,比如你的可能不是users/Administrator) 可能是用户/Dell/.gitconfig
-
设置用户名及标识
当你安装Git后首先要做的事情是 设置你的用户名称和e-mail地址。 这是非常重要的,因为每次Git提交都会使用该信息。 它被永远的嵌入到了你的提交中:
git config --global user.name "tianyi" #名称
git config --global user.email 569263578@qq.com #邮箱
三、Git基本理论
1、Git记录的是什么
如果你有使用过SVN或者其他类型的版本控制系统,你就会知道,它们的工作原理其实就是记录每一次版本变动的内容。
Git则是将每个版本独立保存
这种设计看似会消耗更多的空间,但是在分支管理上,它却是带来了很多的便利和益处,分支管理在后面介绍
2、三棵树
没错,Git 就是通过来维护这三棵树来实现版本控制的,三棵树分别是:工作区域、暂存区域和Git仓库
- 工作区域:就是平时存放项目的地方,看得见的文件夹;
- 暂存区域:临时存放你的改动,事实上是一个文件,保存的就是即将提交到 Git 仓库的列表信息;
- Git 仓库:最终安全存放所有版本数据的位置,这里有你所有提交的版本数据,HEAD指针就是你最新提交的内容。
还有另外一个remote deirectory,加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
3、工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
git管理的文件有三种状态:
已修改(modified)
已暂存(staged)
已提交(committed)
Git的所有操作,都是在这三棵树之间搞来搞去
四、Git创建项目
1、工作日常的6个Git命令
2、使用码云
- 获取ssh公钥
获取ssh公钥教程 - 创建本地仓库(伪)
注:这只是一个例子,便与学习的
- 在本地任意一个文件夹中创建一个目录(文件夹)test,在该目录中创建一个文档111.txt,在文档中写入一些内容
- 在test同等级目录下,右击打开Git Bash Here 输入下面的命令
之后会显示这样的,他会在test同等级目录下创建一个.git的隐藏目录git init
在当前目录新建一个Git代码库
- 之后输入下面的命令
git add .
#或者
git add test
出现这样就是没有报错
这是将test目录添加到Git的缓冲区
- 输入下面的命令
git commit -m "描述信息(必填)"
#可以用 git log查看是否提交到本地库
可以看到没有出问题
5. 在码云上创建一个仓库
之后输入仓库的名称,最好私有,使用readme
成功之后就是这样
之后复制他的ssh公钥
6. 在命令行中(就是Git Bash Here)输入
Git remote add origin ssh地址
#ssh地址要使用自己创建仓库的,
将本地仓库和远程仓库连接
- 输入
git pull --rebase origin master
#将本地仓库和远程仓库合并
- 输入
git push -u origin master
#将本地仓库提交到远程
可以看到,码云上已经有了
- 将111.txt文件加以修改
- 在命令行输入
git add .
git commit -m "描述信息"
git push
注意:
- git push origin master 完整写法,如果远程分支不存在,就会新创建一个
- git push origin 远程和本地存在分支的最终关系写法
- git push 远程只有一个分支的最简易写法
五,git集成idea
1、idea配置
- 安装插件
安装这两个插件,git和gitee,安装后重启idea - 在3部分,找到git的安装目录下的cmd下的git.exe文件
将路径填到3部分,点击旁边的测试,成功后就4–>5即可
点完+号之后会有
这样的界面出来,输入gitee的账号(账号是邮箱)密码,登录即可
成功后会显示
这样就配置完成了
2、创建仓库和提交码云
- 创建仓库
仓库名称可以改,最好是私有性,描述也可以加一下,remote一般不改
节点1
之后就会有Git标签了
有了之后就进行图中的1–》2
1–》3 操作
代码会有相应颜色变化
如果右击项目没有Git选项,那就
之后选择该项目
就会有了
之后就进行上面的1–》2 , 1–》3操作
- 之后直接进行push操作即可
在 上面的节点1那里会有不一样的操作,如果直接跳出来这样的
直接点一OK即可
之后idea会提示是否提交成功
成功会又对应的提示
在码云上也会有相应的改变
普通的程序员是把很多的时间放在写代码和调Bug上,而优秀的程序员是将更多的精力放在设计上!