Git和 github基本使用
关于版本控制
1.文件的版本
- 操作麻烦:每次都需要复制 → 粘贴 → 重命名
- 命名不规范:无法通过文件名知道具体做了哪些修改
- 容易丢失:如果硬盘故障或不小心删除,文件很容易丢失
- 协作困难:需要手动合并每个人对项目文件的修改,合并时极易出错
2.版本控制软件
- 操作简便 只需识记几组简单的终端命令,即可快速上手常见的版本控制软件
- 易于对比 基于版本控制软件提供的功能,能够方便地比较文件的变化细节,从而查找出导致问题的原因
- 易于回溯 可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态
- 不易丢失 在版本控制软件中,被用户误删除的文件,可以轻松的恢复回来
- 协作方便 基于版本控制软件提供的分支功能,可以轻松实现多人协作开发时的代码合并操作
Git 基础概念
- 什么是 Git
Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。
特点
:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性! - Git 的特性
Git 之所以快速和高效,主要依赖于它的如下两个特性:
① 直接记录快照,而非差异比较
② 近乎所有操作都是本地执行 - Git 中的三个区域
使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库。
- 工作区:处理工作的区域
- 暂存区:已完成的工作的临时存放区域,等待被提交
- Git 仓库:最终的存放区域
- Git 中的三种状态
- 已修改 modified:
表示修改了文件,但还没将修改的结果放到暂存区- 已暂存 staged:
表示对已修改文件的当前
版本做了标记,使之包含在下次提交的列表中- 已提交 committed:
表示文件已经安全地保存在本地的 Git 仓库中
注意
:
- 工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。
- 如果文件已修改并放入暂存区,就属于已暂存状态。
- 如果 Git 仓库中保存着特定版本的文件,就属于已提交状态。
安装并配置 Git
- 在 Windows 中下载并安装 Git
在开始使用 Git 管理项目的版本之前,需要将它安装到计算机上。可以使用浏览器访问如下的网址,根据自己的操作系统,选择下载对应的 Git 安装包:
https://git-scm.com/downloads - 配置用户信息
安装完 Git 之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过 Git 对项目进行版本管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作
注意
:如果使用了 --global 选项,那么该命令只需要运行一次,即可永久生效。 - Git 的全局配置文件
通过 git config --global user.name 和 git config --global user.email 配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效 - 检查配置信息
可以运行如下的终端命令,快速的查看 Git 的全局配置信息:
Git 的基本操作
- 获取 Git 仓库的两种方式
① 将尚未进行版本控制的本地目录转换为 Git 仓库
② 从其它服务器克隆一个已存在的 Git 仓库
以上两种方式都能够在自己的电脑上得到一个可用的 Git 仓库 - 在现有目录中初始化仓库
如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤:
① 在项目目录中,通过鼠标右键打开“Git Bash”
② 执行 git init 命令将当前的目录转化为 Git 仓库
git init 命令会创建一个名为** .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分**。 - 检查文件的状态
可以使用git status
命令查看文件处于什么状态,
在状态报告中可以看到新建的 index.html 文件出现在 Untracked files(未跟踪的文件)下面。
未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非明确地告诉它“我需要使用 Git 跟踪管理该文件”。 - 以精简的方式显示文件状态
使用git status
输出的状态报告很详细,但有些繁琐。如果希望以精简的方式显示文件的状态,可以使用如下
两条完全等价的命令,其中-s 是 --short 的简写形式
- 跟踪新文件
使用命令git add
开始跟踪一个文件 - 提交更新
现在暂存区中有一个 index.html 文件等待被提交到 Git 仓库中进行保存。可以执行git commit
命令进行提交,其中 -m 选项后面是本次的提交消息,用来对提交的内容做进一步的描述