一,git前言
1.1 简介
一句话就是,Git是目前世界上最先进的分布式版本控制系统。
其中, 版本控制系统是什么?
是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
哪还有其他类型的版本控制吗?
1,本地版本控制:记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。
2,集中式版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
3,分布式版本控制:每个人都拥有全部的代码!安全隐患!
1.2 下载安装(在win10下)
方式一:去其官网下载 https://git-scm.com/,但下载速度有些慢。
方式二:使用淘宝镜像下载,http://npm.taobao.org/mirrors/git-for-windows/
下载时根据提示信息一步一步来即可。
当下载安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
当我们右击我们的鼠标的时候,我们可以看见三个Git.
其中的,
Git Bash: Unix与Linux风格的命令行
Git CMD: Windows风格的命令行
Git GUI:图形界面的Git
Git安装完之后,需要做最后一步配置,如果你没有做这项配置,是没有git公钥和私钥的,而上传代码到远程仓库的时候需要秘钥进行验证是否本人上传的,想要创建可以使用下面的方法:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
其中的git configl
的参数--globa
表示这台机器上所有的Git仓库都会使用这个配置。
用户名看自己喜欢起,一般都是起些容易记的,亦或者某个简称,邮箱选自己邮箱即可。
git SSH配置:
1、打开git bash。
2、使用cd ~/.ssh可以查看是否已配置SSH。
3、执行生成公钥和私钥的命令ssh-keygen -t rsa 并按回车3下(为什么按三下,是因为有提示你是否需要设置密码,如果设置了每次使用Git都会用到密码,一般都是直接不写为空,直接回车就好了)。会在一个文件夹里面生成一个私钥 id_rsa和一个公钥id_rsa.pub。(可执行start ~命令,生成的公私钥在 .ssh的文件夹里面)。
4、.ssh如果不做特殊处理的话,一般是在C:\Users\Administrator目录下。如果看不到.ssh文件,可以使用ls -ah指令查看隐藏文件夹即可,这是存放秘钥的文件,打开这个文件会看到id_rsa和id_rsa.pub。id_rsa是私钥文件,id_rsa.pub是公钥文件。
5、执行查看公钥的命令cat ~/.ssh/id_rsa.pub 。
1.3 git配置
所有的配置文件在本地,我们可以输入git config -l
查看配置。
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
git相关的配置文件:
1,C:\Program Files\Git\etc:Git 安装目录下的 gitconfig --system 系统级
2,C:\Users\86183.gitconfig: 只适用于当前登录用户的配置 --global 全局
在这里我们可以看到
二,git基本原理
git本地有三个工作区:
1,工作目录(Working Directory)
2,暂存区(Stage)
3,本地资源库(Remote Directory)
- 工作区(Working Directory):平时存放项目代码的地方
- 暂存区(Stage):临时存放改动文件,保存即将提交到文件列表信息
- 本地库(Repository):存放提交到所有版本的数据
- 远程库(Remote):托管代码的服务器。可以简单的认为是你项目组中的一台电脑用于远程数据交换
git的工作流程一般是这样的:
1、(已修改状态)在工作目录中添加、修改文件;
2、(已暂存)将需要进行版本管理的文件放入暂存区域;
3、(已提交)将暂存区域的文件提交到git仓库。
二,git基本使用
2.1 版本库
版本库,又名仓库(repository),在这里的所有文件都可以被git管理,对于里面的每一个文件的修改,删除,git都可以记录。
创建一个版本库就是我们创建一个文件夹,里面放入我们需要被git所管理的文件。
#创建空文件夹
mkdir <file name>
#切换到此文件夹中
cd <file name>
#查看文件夹路径
pwd
创建好一个空文件后,我们使用git init
命令把这个空文件夹变成git可以管理的仓库。
在这里,这里文件夹中会生成一个隐藏的文件夹,.git
,这个隐藏的文件夹最好不要去改动它。
然后我们就可以把我们的文件放入这个文件夹中也就是版本库了。
这里要注意一点:我们最好不要使用微软自带的记事本来编辑。
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100K。
文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。
2.2 本地仓库基本操作
2.3远程仓库基本操作
2.4 分支
概念:相当于平行世界,在版本控制过程中,使用多条线同时推进多个任务。
解决冲突:就是两个平行世界中,修改了相同的地方,在合并的时候不知道听谁的。
这个时候我们就要打开文件手动删改文件中的内容。