go-zero实战3-Git| 青训营笔记

52 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第6天

书接上回的git revertgit reset

git revert

跟git reset用法基本一致,git revert 撤销某次操作,此次操作之前和之后的 commit和history都会保留,并且把这次撤销,作为一次最新的提交。

  • 注意:git revert如果需要merge之前的提交,会被认为已经commit+revert过了,所以不会有任何影响。

git reset

reset用于回退版本,可以遗弃不再使用的提交。

执行遗弃时,需要根据影响的范围而指定不同的参数,可以指定是否复原索引或工作树内容。

一些面试题

参考链接1 参考链接2

Git和SVN有什么区别?

GitSVN
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”,然后将更改提交到存储库

image.png

其他

都是一些git具体操作,多熟悉熟悉就好了。