主要功能
git 是一个开源的分布式版本控制系统,对处理大小项目和协作开发项目有着很大的优势,我们经常需要将我们的代码托管至一些管理平台,如GitHub、Gitee,或者自己搭建的一些托管平台,而 git 可以帮我们将这个过程变得更加简洁高效。
什么是版本控制?
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
主要功能:
- 追踪和记录文件的变更:即记录下来文件是在什么时候、什么人对它进行了怎样的变动,每一次变动都会增加文件的版本号
- 并行开发:软件开发往往是团队合作协同作业,版本控制可以有效解决版本同步和开发者们的通信问题
- 软件配置管理:所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性
- 检入检出控制:
- 分支和合并:
下载git
下载地址:Git for Windows
官网下载较慢,可以用淘宝的镜像下载:CNPM Binaries Mirror
查看 GNU 协议,直接下一步即可
选择 git 的安装位置,可以是默认路径,也可以是自行创建的文件夹
之后的页面不用细看,感兴趣的朋友可以去自行百度每个页面的意义,不感兴趣的朋友全部点 Next 即可,然后点击 Finish 结束。
安装完成后,在桌面右键,在弹出的选项中选择 Git Bash Here 即可打开 Git Bash 命令端,如下图所示.
在终端里输入命令 git --version 即可查看 git 版本,出现图中代码表示安装成功。我安装的版本是 2.35.1 不一样也没有问题。
常用的Linux命令
- cd : 改变目录。
- cd . . 回退到上一个目录,直接cd进入默认目录
- pwd : 显示当前所在的目录路径。
- ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
- touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
- rm: 删除一个文件, rm index.js 就会把index.js文件删除。
- mkdir: 新建一个目录,就是新建一个文件夹。
- rm -r : 删除一个文件夹, rm -r src 删除src目录 rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
- mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。
- reset 重新初始化终端/清屏。
- clear 清屏。
- history 查看命令历史。
- help 帮助。
- exit 退出。
- #表示注释
配置文件
查看配置文件
git所有的配置文件都保存在本地
命令 git config -l 可用来查看全部配置文件
查看单一配置可以使用 git config 命令,具体如下:
git config --system -l // 查看系统配置
git config --global -l // 查看当前用户配置
git config --local -l // 查看当前仓库配置
在配置文件中添加项
- 设置用户名称和e-mail地址(这是每个用户的标识,必须要设置),之后每次 git 提交都会使用该信息
git config --global user.name "操作者姓名"
git config --global user.email "操作者email"
需要注意的是, --global 选项的作用是将该信息设为全局使用,之后系统所做的所有操作都会使用它,如果是想在特定的项目中使用不同的 名称 和 e-mail 地址,那么可以在该项目中运行该命令,而不加 --global 选项。如下所示:
git config user.name "操作者姓名"
git config user.email "操作者email"
删除设置项
- –unset选项
- 比如:删除上面的user.name
git config --unset user.name
基本理论
工作区域
git拥有四个工作区域,分别是: 工作区域(Working Directory)、暂存区(Stage\Index)、本地仓库(Repository)、远程仓库(Remote Directory)
- Working Directory:工作区,平时所写的代码都储存在这个区域
- Stage\Index:暂存区,用于临时保存所做的改动,其本质是一个文件,等待提交
- Repository:本地仓库,这里是存放数据的地方,有多次提交的各个版本的数据。其中的 HEAD 指向最新的版本
- Remote Directory:远程仓库,托管代码的服务器,与本地仓库进行数据交换
工作流程
git的工作流程一般分为以下几步:
- 在工作目录中添加、修改、删除文件(modified);
- 将需要进行版本管理的文件放入暂存区(staged);
- 将暂存区域的文件提交git仓库(committed);
- 将本地git仓库修改推送到远程仓库;
因此,git管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)。
文件的四种状态
版本控制是对文件进行控制,要对文件进行操作就要知道文件目前的状态,避免出现想要提交的文件没有提交,没有完成的文件提交上去的情况。
- Untracked:未跟踪,此文件在文件夹中但并没有加入到git库,不参与版本控制,通过 git add 状态变为 Staged。
- Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处:如果被修改,而变成 Modefied ,如果使用 git rm 移除版本库,则成为 Untracked 文件。
- Modified:文件已修改,仅仅是修改,并没有进行其他操作,这个文件也有两个去处,通过 git add 可进入暂存 Staged 状态,或者使用 git checkout 丢弃修改内容,返回 Unmodifiy 状态,这个 git checkout 即从库中去除文件,覆盖当前修改。
- Staged:暂存状态,执行 git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 Unmodify 状态,执行 git reset HEAD filename 取消暂存,文件状态为 Modified。