1、git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!
2、版本管理工具的分类
1.svn (集中式)
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。
2.git(分布式)
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
3、下载git
2、安装
默认安装 ,直接下一步。
3、安装成功
1.win+r 调出运行窗口
2.输入cmd 调出命令行工具(终端)
3.输入 git --version 显示git版本号,表示git安装成功
4、使用git
1、创建本地版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1.首先,选择一个合适的地方,创建一个空目录: 例如文件名为 QY133_NB的文件夹,里面可以随便放一些文件,文件夹等等
2.通过 git init 命令把这个目录变成Git可以管理的仓库:
进入文件目录后,输入git init,生成git可以管理的仓库
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的大聪明可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果没有看见这个文件夹,因为.git文件夹是隐藏的文件夹,可以通过查看,勾选隐藏的项目勾选出来
第二种创建方法:
在需要创建git版本库的文件夹下
按shift键后右键
点击 在此处打开Powershell 窗口(s)
输入 git init 命令,同样可以创建git版本库
第三种方法:
在vscode文件夹下,右键,在集成终端打开,输入 git init命令即可
3、常规开发项目
创建项目,正常写代码 代码一定要放到git仓库目录下,因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
4、提交到本地仓库
第一步:git status 检查版本库的状态
-
第二步,用命令git add <file>告诉Git,把文件添加到仓库 git add . 提交全部【注意,后面带点 git 空格 add 空格 点】
-
第三步,用命令git commit -m '提交说明'告诉Git,把文件提交到仓库
-
第四步,提交时,会提示配置用户 git config --global user.name ‘username’ //username是你的git账号 git config --global user.email ‘email ‘ //email是你的git邮箱
如果提示让输入用户名,接下来输入命令:
git config --global user.email "邮箱地址" //回车
git config --global user.name "张三" //回车
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
5、初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
-
使用命令git add <file>,注意,可反复多次使用,添加多个文件;
-
使用命令git commit -m ‘message’,完成。
6、版本回退
在Git中,我们用git log命令查看,提交的历史记录
7、回退
现在我们启动时光穿梭机,准备把 index.html
回退到上一个版本,也就是第三次添加10个li标签
的那个版本,怎么做呢?
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,也就是最新的提交6d20e733...
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
现在,我们要把当前版本第四次添加类名four的divb标签
回退到上一个版本第三次添加10个li标签
,就可以使用git reset
命令:
git reset --hard HEAD^
8、后悔药
回退的过分了,后悔了。只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个某个版本的commit id是33d9d598d123bb1327ba2abd9b73b725000abd9c,于是就可以指定回到未来的某个版本: git reset --hard 33d9d598d 版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
如果命令行已经关闭了,怎么办呢??记不住版本号了吧?
Git提供了一个命令git reflog用来记录你的每一次命令:
5、远程仓库(GitHub)
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩?
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
1、注册账号
1.自行注册GitHub账号
登陆后界面:
2、新建一个远程仓库
2.本地Git仓库和GitHub仓库之间的传输是通过SSH加密,查看秘钥
Git bash 下查看 ,右键,点击Git Bash Here
ls -al ~/.ssh 检查ssh keys是否存在
此命令窗口 不支持ctrl+v粘贴 需要右键 点击 paste
如图:表示不存在秘钥
ssh-keygen -t rsa -C ''xxx'' 添加一个ssh
ssh-add ~/.ssh/id_res 生成新的key
-t = The type of the key to generate 密钥的类型
-C = comment to identify the key 用于识别这个密钥的注释
So the Comment is for you only and you can put anything inside. Many sites and software are using this comment as the key name. 所以这个注释你可以输入任何内容,很多网站和软件用这个注释作为密钥的名字
本地管理员目录会出现一个.ssh文件夹
里面有id_rsa和id_rsa.pub两个文件,
这两个就是SSH Key的秘钥对,
id_rsa是私钥,不能泄露出去,
id_rsa.pub是公钥,可以放心地告诉任何人。
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
点击new SSH key
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
ssh -T git@github.com 检测是否建立连接
显示该内容,表示不成功
2、添加到远程仓库
1.创建远程仓库
2.本地仓库添加到远程仓库
点击要提交的远程仓库:
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起,只要本地作了提交,就可以通过命令: git push origin master
3、GitHub Pages
6、克隆远程仓库
上面,我们讲了先有本地库,后有远程库的时候,如何关联远程库。 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。 首先,登陆GitHub,创建一个新的仓库,名字叫xxx: 现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:
登陆gitHub,点进项目,选择code,选择ssh,复制地址,当前地址就是我们克隆项目的地址
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
1、新建文件夹,输入cmd
2、输入命令:
git clone 复制的地址
回车 克隆完成
克隆完成,文件下载至本地