一、什么是Git?
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。
Git 是一个开源的分布式版本控制系统
,用于敏捷高效地处理任何或小或大的项目。
就是一个帮我们管理文件版本的程序,专业名称叫:分布式版本控制系统。
什么是版本控制?
例如:当我们开发了一个app,版本号为1.0.0,接着修改了里面的一些功能。出现了版本1.0.1、1.0.2…,但是老板觉得不满意,要用某一个版本的,但是我们的代码是覆盖式的开发模式,不知道什么时候修改了功能,修改了什么功能,是什么人修改,这就是出现了版本控制,他可以让我们回退到任何一个版本,知道修改了什么功能,是什么人修改。
什么是版本控制系统?
版本控制系统就是自动的帮我们完成上面操作的系统或者说就是一个应用程序,或者说软件
版本控制系统如何帮我们控制版本?
我们需要进行版本控制的文件都要提交到一个本地仓库(其实就是一个隐藏文件夹)里面,我们对文件做出的修改都会被这个版本控制系统侦测到,如果我们要保留这个版本的文件,就要通过版本控制系统提供的命令把文件提交到仓库里面,然后版本控制系统就会自动为我们提交的文件打上版本号。
仓库分几种?
- 本地仓库:建立在本地的文件夹。
- 远程仓库:建立在互联网的服务器内的文件夹。
版本控制系统分为几种?
分布式版本控制系统
配有上述两个仓库,在你的电脑上有一个本地仓库,在远程的服务器上有一个远程仓库。
我们在提交文件的时候会先提交到本地仓库,然后在有网络的情况下,再从本地仓库提交到网络上的远程仓库。
Git 就是一个典型的分布式版本控制系统
集中式版本控制系统
只配有上述的远程仓库,当然如果你的这台电脑就充当远程服务器的角色,那远程仓库其实就在你这台电脑上。
我们在提交文件的时候是直接提交到远程仓库。
SVN 就是一个典型的集中式版本控制系统
二、什么是 GitHub?
GitHub 就担任了上述的远程仓库这一角色,就是一个存放在外网服务器上的一个文件夹。
当然远程仓库除了 GitHub 之外,还有 Gitee(码云)。
三、git的安装
1.官网下载地址。https://git-scm.com/
2.选择适合的点击即可。
3.下载完毕,安装全部默认,next下一步即可。
4.安装完毕,最后一步取消选框的√。如下图:
5.验证安装完毕后,右键桌面出现git图标,如下图:
四、Git的使用
4.1.本地仓库
4.1.1工作流程
Git 本地操作的三个区域:
4.1.1 本地仓库操作
什么是仓库?仓库又名版本库,英文名 repository
,可以简单理解为一个目录,用于存放代码。这个目录里所有文件都被Git管理,每个文件的修改,删除操作都可以被跟踪到。
安装后首次使用需要进行全局配置(只需要一次,)
桌面右键Git Bash Here
打开Git 命令
用户名与邮箱地址最好与Github一致
创建仓库:
方法一:直接创建一个文件夹(空目录)
方法二:mkdir
cd 进入目录。
Git 初始化:让git知道要来管理者个目录。
打开文件夹,点击查看,隐藏,出现。git文件。
.git隐藏目录,不能更改,删除
Git 仓库即创建好了。
Git 指令:
git init
初始化
git status
查看当前状态
git add 文件名
添加到缓存区
- git add 可以添加一个文件,也可以添加多个文件。(文件名要用“”包裹起来,多个文件名中间要隔空号)
- 方法1:
git add “文件名”
- 方法2:
git add “文件名1” “文件名2” “文件名3”。。。。
- 方法3:
git add .
[添加当前目录(整个文件夹)到缓存区中]
git commit -m “注释内容(必填)”
提交至版本库
git reflog
得到历史操作
注:本地操作----提交缓存区----提交版本库
版本回退:
1.查看版本,得到id
指令:
git log ----多行
git log --pretty=oneline -----一行
2.版本回退
git reset --hard 版本号(commit id)
版本回退后,要想再次回到最新的版本,需要使用指令去查看历史操作,以得到最新的commit id。
commit id 可以不用写全,至少要写前四位。
4.2 远程仓库
以Github为例子。
创建Github账号:
1.按照步骤创建账号-----创建远程仓库
2.填写仓库名,是否公开
俩种常见的使用方式:
基于https协议
1.创建文件夹,克隆远程仓库。提交缓存区,提交本地仓库,提交线上仓库,拉取线上仓库。
克隆指令:
git clone 地址 ---- 克隆
git add + 三种方法 --- 提交缓存区
git commit -m "注释" ---提交本地
git push ---提交线上
git pull ----拉取
首次往线上仓库提交代码时,需要鉴权。(出现403错误,即没有权限)
在仓库的.git
文件夹中的config
中修改。添加远程仓库账号密码。
基于SSH协议(推荐)
该方式与上述的HTTPS协议不同在于,鉴权方式不同。对于git的相关操作没有任何影响。
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
window10 系统中可以下载:
方式:生成公私钥对指令(需自行安装 OpenSSH)
ssh-keygen -t rsa -C "github的注册邮箱"
步骤:
- 1.生成客户端公私钥文件
- 2.将公钥上传到Github
按照提示找到公钥,并且复制到github中,
在此处使用SSH协议:
创建公私钥并且把上面的秘钥输入到github上:
输入完毕,要求验证github密码。并且会向你的邮箱发送一封邮件。
接下来的git操作找旧即可。
克隆线上仓库—进行代码操作-----提交缓存区-----提交本地仓库------push上传线上仓库
多人协作–分支
相关指令:
标记:* 表示当前所在的分支
查看分支:git branch
创建分支: git branch 分支名
切换分支: git checkout 分支名
创建新分支并且切换到此分支:git checkout -b 分支名
删除本地分支:git branch -d 分支名
合并分支:git merge 被合并的分支名
将新分支发布在github上: git push origin 分支名
在github远程端删除一个分支: git push origin :分支名 (分支名前的冒号代表删除)
/git push origin –delete 分支名
注意删除远程分支后,如果有对应的本地分支,本地分支并不会同步删除!
查看分支是否已经提交到远程:git branch --all
将本地的dev分支与远程的dev分支关联起来:git branch –set-upstream dev origin/dev
新建分支之后需要对分支进行更新之后才可以进行 在分支里 拉代码,提交代码等操作:
git push --set-upstream origin dev
注意:在本地仓库操作时,不会影响线上仓库,需要push上去,并且在有多人开发时要pull。
git 的本地仓库与github线上仓库删除
本地仓库:
方法一:整个文件删除即可。
方法二:
在目标文档所在地,右击,选择git bash here
输入下面的这条指令
rm .git -rf
删除.git隐藏文件。在整个文件删除。
github线上仓库: