这是我参与「第五届青训营 」笔记创作活动的第6天
书接上回的
git revert和git reset
git revert
跟git reset用法基本一致,git revert 撤销某次操作,此次操作之前和之后的 commit和history都会保留,并且把这次撤销,作为一次最新的提交。
- 注意:git revert如果需要merge之前的提交,会被认为已经commit+revert过了,所以不会有任何影响。
git reset
reset用于回退版本,可以遗弃不再使用的提交。
执行遗弃时,需要根据影响的范围而指定不同的参数,可以指定是否复原索引或工作树内容。
一些面试题
Git和SVN有什么区别?
| Git | SVN |
|---|---|
| 1. Git是一个分布式的版本控制工具 | 1. SVN 是集中版本控制工具 |
| 2.它属于第3代版本控制工具 | 2.它属于第2代版本控制工具 |
| 3.客户端可以在其本地系统上克隆整个存储库 | 3.版本历史记录存储在服务器端存储库中 |
| 4.即使离线也可以提交 | 4.只允许在线提交 |
| 5.Push/pull 操作更快 | 5.Push/pull 操作较慢 |
| 6.工程可以用 commit 自动共享 | 6.没有任何东西自动共享 |
什么是Git?
我建议你先通过了解 git 的架构再来回答这个问题,如下图所示,试着解释一下这个图:
- Git 是分布式版本控制系统(DVCS)。它可以跟踪文件的更改,并允许你恢复到任何特定版本的更改。
- 与 SVN 等其他版本控制系统(VCS)相比,其分布式架构具有许多优势,一个主要优点是它不依赖于中央服务器来存储项目文件的所有版本。
- 每个开发人员都可以“克隆”我在图中用“Local repository”标注的存储库的副本,并且在他的硬盘驱动器上具有项目的完整历史记录,因此当服务器中断时,你需要的所有恢复数据都在你队友的本地 Git 存储库中。
- 还有一个中央云存储库,开发人员可以向其提交更改,并与其他团队成员进行共享,如图所示,所有协作者都在提交更改“远程存储库”。
git中的“staging area”或“index”是什么?
可以通过下图进行解释:
在完成提交之前,可以在称为“staging area”或“index”的中间区域中对其进行格式化和审查。从图中可以看出,每个更改首先在暂存区域中进行验证,我将其称为“stage file”,然后将更改提交到存储库
其他
都是一些git具体操作,多熟悉熟悉就好了。