Git基础
版本管理
什么是版本管理
版本管理就是一种记录文件变化的方式,以便将来查阅待定版本的文件内容。
人为维护文档版本的问题
- 文档数量多且命名不清晰导致文档版本混乱
- 每次编辑文档需要赋值,不方便
- 多人同时编辑同一个文档,容易产生覆盖
Git是什么
Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
Git安装
网址:https://git-scm.com/download/win
Git基本工作流程
git仓库 | 暂存区 | 工作目录 |
---|---|---|
用于存放提交记录 | 临时存放被修改文件 |
Git的使用
Git使用前配置
在使用Git前,需要告诉Git你是谁,在向Git仓库中提交时需要用到。
- 配置提交人姓名:
git config --global user.name 提交人姓名
- 配置提交人邮箱:
git config --global user.email 提交人邮箱
- 查看git配置信息:
git condig --list
注意
- 如果要对配置信息进行修改,重复上述命令即可。
- 配置只需执行一次。
提交步骤
git init
初始化git仓库git status
查看文件状态git add 文件列表
追踪文件git commit -m 提交信息
向仓库提交代码git log
查看提交记录
撤销
-
用暂存区中文件覆盖工作目录中的文件:
git checkout 文件
-
应用场景: 在项目开发中将修改到一般的文件添加到暂存区中,然后回到工作目录继续开发,过了一会儿发现后来开发的代码有问题,需要将代码恢复到开发一半时的状态,这时就可以用暂存区中的文件覆盖工作目录中的文件。
注意:执行之后暂存区中仍存在该文件
-
-
将文件从暂存区中删除:
git rm --cached 文件
- 应用场景:在工作目录下,有一些测试文件,这些测试文件是不想让git管理的,因为他只是一些临时文件,用完就删除了,但有的时候会不小心添加到了暂存区中,这是我们就应该将它从暂存区中删除。因为不进行删除它就会被后续的操作提交到git’仓库中。
注意:命令执行完成后,在暂存区中就没有这个文件了,这个文件也不被git所管理了,但是在工作目录中还是存在这个文件的
-
将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:
git reset --hard commitID
- 使用场景:工作目录中的代码存在问题,git仓库中的一些提交记录也存在问题,希望将更早的提交记录恢复出来,并且删除掉存在问题的提交记录。
- 使用场景:工作目录中的代码存在问题,git仓库中的一些提交记录也存在问题,希望将更早的提交记录恢复出来,并且删除掉存在问题的提交记录。
Git进阶
分支
为了方便理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
在开发过程中,分支与分支之间是相互独立的,互不影响。
分支细分
-
主分支(master):第一次向git仓库提交更新记录时自动产生的一个分支。
- 在实际开发项目过程中,一定要保持开发主线的稳定性,也就是说要保持主分支中代码的稳定性。主分支中的代码一般都是可以用于向外界发布的代码,所以一般开发工作都不会在主分支上进行,在开发过程中都会创建一条开发分支,当功能在开发分支完成以后,经过测试没有问题,再将开发分支中的代码合并到主分支上。
- 在实际开发项目过程中,一定要保持开发主线的稳定性,也就是说要保持主分支中代码的稳定性。主分支中的代码一般都是可以用于向外界发布的代码,所以一般开发工作都不会在主分支上进行,在开发过程中都会创建一条开发分支,当功能在开发分支完成以后,经过测试没有问题,再将开发分支中的代码合并到主分支上。
-
开发分支(develop):作为开发的分支,基于master分支创建。
-
可以理解为主分支的一个副本,功能在副本上开发,开发完成以后再将副本中的代码拷贝到主分支上
-
功能分支(feature):作为开发具体功能的分支,基于开发分支创建;
- 作用就是开发一个独立的功能,当功能开发完成以后,再将功能分支中的代码合并到开发分支,这时功能分支就可以删除了,当开发分支中的功能累计到一定程度以后,再将开发分支中的代码合并到主分支。
- 这样做的原因是因为开发分支也要保持最大程度的稳定性,除了开发功能要建立分支以外,修复bug也可以创建单独的分支,在git当中,分支还有其他的功能,比如分支也可以用来存储不同软件的版本,比如说jQuery(1,2,3)不同版本的jQuery可以放在不同分支中进行分别开发
git 鼓励开发者使用分支的,因为它确实强大,允许多件事情同时进行互不影响
功能分支->开发分支->主分支
分支命令
git branch
查看分支- 当前在哪个分支哪个分支就会显示绿色并且前面带*号,否则是白色
git branch 分支名称
创建分支- 在哪个分支创建分支就是基于哪个分支创建分支
git checkout 分支名称
切换分支- 两个分支互不影响,所以当该分支上的文件提交到仓库之后,切换另一个分支后看不到该分支的文件
git merge 来源分支
合并分支- 合并完成以后,被合并分支依然存在
git branch -d 分支名称
删除分支(分支被合并后才允许删除)(-D 强制删除)- 如果说某一个分支上的工作已经完成,并且这个分支已经不需要继续存在了,这个时候我们就可以删除这个分支。
暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
- 存储临时改动:
git stash
- 恢复改动:
git stash pop