什么是Git
- Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
- 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
- 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。
- 版本控制系统能追踪项目,从开始到结束的整个过程。对编程人员而言,版本控制技术是团队协作开发的桥梁,助力于多人协作同步进行大型项目开发。
- 软件版本控制系统的核心任务:查阅项目历史操作记录、实现协同开发。
常见版本控制工具
集中式版本控制工具
概念:版本仓库是集中存放在中央服务器的,team里每个人工作时,从中央服务器下载代码。每个人个人修改后,提交到中央版本仓库。提交(commit)代码需要联网。
如:svn
SVN的优缺点
- 优点:
- Ø管理方便,逻辑明确,操作简单,上手快。
- Ø易于管理,集中式服务器更能保证安全性。
- Ø代码一致性非常高。
- Ø有良好的目录级权限控制系统。
- 缺点:
- Ø对服务器性能要求高,数据库容量经常暴增,体量大。
- Ø必须联网。如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等。
- Ø不适合开源开发。
- Ø分支的管控方式不灵活
分布式版本控制工具
概念:分布式版本控制系统可以没有 “中央服务器”,每个人的电脑上都是一个完整的版本仓库,这样工作的时候,不需要联网。因为版本仓库就在你自己的电脑上。多人协作只需要各自修改,开发完成即可,推送给对方联网,推送的时候是将整个版本仓库推过去。
如:Git
Git的优缺点
- 优点:
1.适合分布式开发,每一个个体都可以作为服务器。每一次Clone就是从服务器上pull到了所有的内容,包括版本信息。
2.公共服务器压力和数据量都不会太大。
3.速度快、灵活,分支之间可以任意切换。
4.任意两个开发者之间可以很容易的解决冲突,并且单机上就可以进行分支合并。
5.离线工作,不影响本地代码编写,等有网络连接以后可以再上传代码,并且在本地可以根据不同的需要,本地新建自己的分支。
- 缺点:
1、学习周期相对而言比较长。
2、不符合常规思维。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
(三)Git工作流程
Clone:克隆,从远程仓库中克隆代码到本地仓库,第一次操作
Push:推送,代码完成后,需要和团队成员共享代码时,将代码推送到远程仓库。
Pull:拉取,从远程库拉代码到本地库,自动进行合并(merge),最后放到工作区。
checkout:将本地仓库的内容检出到工作区
add:在提交前先将代码提交到暂存区
commit:提交到本地仓库
Git相关的基本概念
- 本地仓库:
在本地主机上的一个代码库,可以独立存在,也可以与远程仓库进行关联 。通常指的是.git目录,也叫本地版本库。
- 工作区:
电脑中可以看见的目录(执行git init命令的目录)。对任何文件的修订(增删改),都先放在工作区,工作区不与任何仓库分支进行关联
- 暂存区:
一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。把修订的文件,从工作区经过add(添加)后与某一个仓库分支进行关联,只有进入暂存区的文件才能 commit(提交)到本地仓库。
- 远程仓库 :
在局域网或互联网上的一个主机,存放代码库的主机或平台,比如GitHub、 Gitee.com(码云) 、Gitlab
- 分支:
代码存放在仓库,默认是主分支(master),可以在主分支基础上创建很多子分支,比如 develop(开发)、bugfix(bug修复)等。
Git的下载安装
在电脑的任意目录下右键也是一样效果
- 下载地址:Git - Downloads
- 双击下载后的安装包,一路下一步,傻瓜式安装即可,可修改默认安装路径。
- 安装成功后,在电脑的任意位置单击鼠标右键,即可看到两个右键菜单:
其中Git Bash Here是命令行窗口操作Git,而Git GUI Here是图形化界面操作。
我们重点学习命令行方式。
- 卸载注意事项:
如果彻底删除git,需要删除./ssh文件夹和.gitconfig文件。
基本配置用户和邮箱
1)在电脑桌面(或任意目录内)单击鼠标右键,选择Git Bash Here 打开命令行窗口
2)配置用户名:
git config --global user.name “用户名”
3)配置邮箱:
git config --global user.email “邮箱”
4)配置好后可以在本地电脑目录查看,也可以通过命令查看
- 本地用户路径下会生成一个配置文件:C:\Users\admin\.gitconfig
如果配置错误或想重新配置,可以将该配置文件删除,再次通过以上命令重新配置。
- 通过命令查询配置信息:
git config --list
Git本地操作
构建本地仓库
- 构建本地仓库(也叫版本库)有两种方式:
- 在本地初始化一个
- 从远程仓库克隆一个(后面演示)
- 这里我们暂时没有远程仓库,所以先使用第一种方式在本地初始化一个。
构建仓库命令:git init
- 操作步骤:
- 首先在指定的磁盘路径下创建一个空文件夹gitdemo,在空文件夹下单击鼠标右键打开Git Bash Here命令窗口。
- 在窗口中输入git init命令,这时将隐藏文件夹项显示出来,我们会发现在这个空目录下生成一个隐藏文件.git,这个隐藏文件.git就是本地仓库。
- 查看文件状态:git status
操作本地仓库
- 创建并编辑文件
2. 将文件添加到暂存区
3. 将暂存区中的文件提交到本地仓库
4. 查看提交历史记录
5. 版本回退
6. 回到未来的某个提交
7.删除已经提交的文件
分支管理
查看分支
创建分支
切换分支
合并分支
删除分支
远程仓库
生成秘钥
配置秘钥
删除远程仓库
远程仓库的操作
查看远程仓库
关联远程仓库
推送本地仓库内容到远程仓库