目录
一、基础知识
类别 | 内容 |
概念 | 开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。 |
特点 | 项目越大越复杂,协同开发者越多,越能体现Git的高性能和高可用性。 |
特性 | 直接记录快照,而非差异比较、近乎所有操作都是本地执行。 |
SVN差异比较 | 传统的版本控制系统是基于差异的版本控制,他们存储的是一组基本文件和每个文件随时间逐步累积的差异。 |
Git记录快照 | 原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 |
近乎所有操作都是本地执行 | 大多数操作只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。 |
Git三个区域 | 工作区、暂存区、Git仓库 |
Git三个状态 | 已修改(modified)、已暂存(staged)、已提交(committed) |
Git工作流程 | 在工作区修改文件 >> 将你想要下次提交的更改进行暂存 >> 提交更新,找到暂存区的文件,将快照永久性存储到Git仓库 |
二、Git安装
2.1 配置用户信息(用户名、邮件地址)
使用了--global选项,该命令只需要运行一次,即可永久生效。
存放目录:C:/User/用户名文件夹/.gitconfig命令:git config --global user.name "名字"
git config --global user.email "邮箱"
2.2 检查配置信息
命令:git config --list --global #查看所有的配置
git config user.name/user.email #查看指定的全局配置项
2.3 获取帮助信息
命令:git help config #无需联网即可在浏览器打开帮助手册
git config -h #不想查看完整的手册,-h获取更简明的“help”输出
三、Git基本操作
3.1 获取Git仓库的两种方式
- 将尚未进行版本控制的本地目录转换为Git仓库
- 从其他服务器克隆一个已存在的Git仓库
3.2 工作区文件的4种状态
3.3 常用的git命令及作用
操作 | 作用 |
git init | 将当前的目录转化为Git仓库 |
git status git status -s/--short | 检查文件状态 |
git add 文件名 | 可以用它开始跟踪新文件 把已跟踪的、且已修改的文件放到暂存区 把有冲突的文件标记为已解决状态 |
git commit -m "提交消息(描述本次提交信息)" | 提交更新 提交已暂存的文件 |
git checkout --修改的文件名 | 撤销对文件的修改 |
get add . | 向暂存区中一次性添加多个文件 |
git reset HEAD 要移除的文件名称 git reset HEAD . (取消所有的) | 取消暂存的文件 |
get commit -a -m "描述消息" | 跳过使用暂存区 |
git rm -f 文件名(git仓库和工作区同时移除对应文件) git rm --cached 文件名(git仓库中移除指定的文件) | 移除文件 |
git log / git log -2 | 查看提交历史/查看最近两条 |
git reset --hard<CommitID> | 根据提交的ID回到指定版本 |
四、开源项目托管平台github
4.1 开源项目托管平台
用于免费存放开源项目源代码的网站
Github(最牛的一个,没有之一)
Gitlab(对代码私有性支持较好,企业用户较多)
Gitee(码云,国内的开源项目托管平台。访问速度快,纯中文界面,使用友好)
4.2 github介绍
GitHub是世界上最大的代码托管平台,超5千万开发者正在使用。
GitHub中文社区是一个致力于分享和传播GitHub上优质开源项目的中文社区平台。
官网首页:https://github.com
4.3 远程仓库的使用
4.3.1 访问方式(2种)
HTTPS:零配置,但是每次访问仓库时,需要重复输入Github的账号和密码才能访问成功。
SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需要重复的输入Github的账号和密码。
4.3.2 基于https将本地仓库上传Github
本地没有现成的Git仓库
本地有现成的Git仓库
第2次推送
git push
4.3.3 基于ssh将本地仓库上传Github(重点)
(1)SSH Key
作用:实现本地和Github之间免登录的加密数据传输。
好处:免登录身份认证、数据加密传输。
组成(2部分):
id_rsa(私钥文件,存放客户端的电脑即可)
id_rsa.pub(公钥文件,需要配置到Github中)
(2)SSH Key的操作
生成:
打开Git Bash
输入命令: ssh-keygen -t rsa -b 4096 -C "注册的邮箱"
连续敲击3次回车,即可在C:\Users\用户名文件夹\.ssh目录中生成id_ras和id_rsa.pub两个文件
命令输入并执行成功:
配置:
检测:
输入命令:ssh -T git@github.com
命令输入并执行成功:
(3)上传到Github
用 git 管理 本地文件,做一次本地提交
在Github里面创建一个新的空白仓库在仓库里面有如下命令,复制到Git Bash执行
命令输入并执行成功:
4.3.4 将远程仓库克隆到本地
输入命令:git clone 远程仓库地址
远程仓库地址: 命令输入并执行成功:
五、git分支
5.1 基础概念
分支作用:多人协作开发,防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能开发。
master主分支作用:保存和记录整个项目已完成的功能和代码。
功能分支作用:专门用来开发新功能的分支。
5.2 常用命令
操作 | 作用 |
git brance | 查看分支列表,*号表示当前分支 |
git brance 分支名字 | 创建新分支,执行完创建分支的命令后,用户当前还是处于master分支 |
git checkout 分支名字 | 切换分支 |
git checkout -b 分支名称 | 快速创建并切换到新分支 |
git merge 被合并的分支名字 | 合并分支 |
git brance -d 分支名字 git branch -D 分支名字 (强制删除) | 删除分支 |
git push -u 远程仓库的别名 本地分支名称:远程分支名称 | 第一次推送分支带-u,此后直接使用git push推送 |
git remote show 远程仓库名字 | 查看远程分支列表 |
git checkout 远程分支的名称 | 把对应的远程分支下载到本地 |
git checkout -b 本地分支名称 远程仓库名称/远程分支名称 | 把对应的远程分支下载到本地,并给下载到本地的分支重命名 |
git pull | 拉取远程分支的最新代码 |
git push 远程仓库名称 --delete 远程分支名称 | 删除远程分支 |