1.Git基础
1.1 版本管理
1.1.1 什么是版本管理
版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。
1.1.2 人为维护文档版本的问题
-
文档数量多且命名不清晰导致文档版本混乱
-
每次编辑文档需要复制,不方便
-
多人同时编辑同一个文档,容易产生覆盖
1.2 Git 是什么
Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
1.3 Git 安装
在安装的过程中,所有选项使用默认值即可。
1.4 SVN与Git的最主要的区别
-
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
-
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
1.5 Git 基本工作流程
git仓库 | 暂存区 | 工作目录 |
---|---|---|
用于存放提交记录 | 临时存放被修改文件 | 被Git管理的项目目录 |
1.6 Git 的使用
1.6.1 Git 使用前配置
在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。
- 配置提交人姓名:
git config --global user.name 提交人姓名
- 配置提交人姓名:
git config --global user.email 提交人邮箱
- 查看git配置信息:
git config --list
注意
-
如果要对配置信息进行修改,重复上述命令即可。
-
配置只需要执行一次。
1.6.2 提交步骤
git init
初始化git仓库git status
查看文件状态git add 文件列表
追踪文件git commit -m 提交信息
向仓库中提交代码git log
查看提交记录git diff
查看更改前后的差别
1.6.3 撤销
- 用暂存区中的文件覆盖工作目录中的文件:
git checkout 文件
- 将文件从暂存区中删除:
git rm --cached 文件
- 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:
git reset --hard commitID
- 将 git 回退至上个版本:
git reset --hard^
git commit --amend
修改提交信息git rebase -i
压缩历史
2. Git进阶
2.1 分支
为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
2.1.1 分支细分
-
主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。
-
开发分支(develop):作为开发的分支,基于 master 分支创建。
-
功能分支(feature):作为开发具体功能的分支,基于开发分支创建
功能分支 -> 开发分支 -> 主分支
2.1.2 分支命令
-
git branch
查看分支 -
git branch 分支名称
创建分支 -
git checkout 分支名称
切换分支 -
git merge 来源分支
合并分支 -
git branch -d 分支名称
删除分支(分支被合并后才允许删除)(-D 强制删除) -
git log -graph
以图表形式查看分支
2.2 暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
- 存储临时改动:
git stash
- 恢复改动:
git stash pop
3. 远程仓库
3.1 创建仓库
-
填写仓库基本信息
-
将本地仓库推送到远程仓库
-
git push 远程仓库地址 分支名称
-
git push 远程仓库地址别名 分支名称
-
git push -u 远程仓库地址别名 分支名称
-u 记住推送地址及分支,下次推送只需要输入git push即可
-
git remote add 远程仓库地址别名 远程仓库地址
-
3.2 拉取操作
3.2.1 克隆仓库
克隆远端数据仓库到本地:git clone 仓库地址
3.2.2 拉取远程仓库中最新的版本
拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称
3.3 Git查看远程仓库:
git remote
3.4 Git 更改远程仓库:
git remote rm origin [url]
git remote add origin [url]
3.5 Git忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。
git忽略清单文件名称:.gitignore