本课程为国科大高级软件工程专业期末复习资料,重点讲解现代软件开发方法,涵盖敏捷开发、持续集成等前沿技术,帮助学生掌握高效开发流程。
### 1. 下面哪个 git 命令用来帮助跟踪谁修改了什么文件和什么时候修改的?
A. git list
B. git manage
C. git push
D. git blame
### 2. 如何比较两个文件或当前文件和以前版本的修订?
A. git diff
B. git compare
C. git clone
D. git checkout
### 3. 如果提示提交内容为空、不能提交,则最为合适的处理方式是?
A. 执行 git status 查看状态,再执行 git add 命令选择要提交的文件,然后提交。
B. 执行 git commit --allow-empty ,允许空提交。
C. 执行 git commit -a ,提交所有改动。
D. 执行 git commit --amend 进行修补提交。
### 4. 如果把项目中文件 hello.c 的内容破坏了,如何使其还原至原始版本?
A. git reset -- hello.c
B. git checkout
根据给定的文件信息,我们可以总结出以下相关的IT知识点:
### 一、Git命令解析
#### 1. 跟踪文件修改记录
- **git blame**:此命令用于跟踪谁在何时修改了哪些文件的具体内容。选项D正确。通过`git blame `可以查看每个代码行最后被修改的时间及作者,这对于理解代码演变过程非常有用。
#### 2. 文件差异对比
- **git diff**:用于比较两个文件或当前文件与先前版本之间的差异。选项A正确。`git diff`可以帮助开发者了解文件变化的具体细节,比如增加了哪些内容、删除了哪些内容等。
#### 3. 处理空提交问题
- **git status**:首先使用此命令查看当前仓库的状态,了解哪些文件发生了更改。
- **git add**:接着使用此命令选择要提交的文件,例如`git add `。
- **git commit**:最后执行提交操作,如`git commit -m 提交消息`。选项A提供了一种合理的解决方案,适合于初次尝试提交时出现提交内容为空的情况。
#### 4. 文件内容恢复
- **git checkout HEAD -- **:如果误操作导致文件内容损坏,可以使用此命令恢复文件至最后一次提交的状态。选项B提供了正确的解决方法,`git checkout HEAD -- hello.c`会将hello.c文件恢复至最新的已提交版本。
#### 5. 数据丢失恢复
- **git checkout HEAD@{1} -- **:当执行了硬重置(`git reset --hard`)而导致尚未提交的修改丢失时,可以使用此命令尝试恢复。选项B提供的方法是可行的。例如,`git checkout HEAD@{1} -- meeting.doc`能够恢复meeting.doc文件至重置前的状态。
#### 6. 快速添加修改文件
- **git add -u**:此命令只将已经追踪过的文件中的改动添加到暂存区,而不会添加新的文件。选项D提供了最高效的方法。
#### 7. 保持提交历史不变
- **git commit --amend**:此命令可以修改最近一次提交的信息,但不会改变实际的提交历史。选项D是正确的选择。
### 二、现代软件开发方法概念解释
#### 1. Scrum
Scrum是一种敏捷软件开发框架,强调团队合作、迭代交付以及适应变化。它通过Sprint周期组织工作,确保项目快速响应需求变化。
#### 2. 计划-文档开发方法(Plan-and-Document based Development)
这是一种传统的软件开发方法,强调详细的前期规划和文档编写。这种方法通常适用于需求明确且稳定不变的项目。
#### 3. DRY (Don’t Repeat Yourself) 无重复代码
DRY原则鼓励开发者避免重复编写相同的代码,以减少冗余并提高代码的可维护性和扩展性。
#### 4. MVC(Model-View-Controller)
MVC是一种常用的软件架构模式,将应用程序分为模型、视图和控制器三个部分,有利于代码的解耦和复用。
#### 5. SMART 用户故事
SMART用户故事是指具体、可测量、可达成、相关性强、时限性的用户故事。这种描述方式有助于明确需求并确保开发成果符合预期。
#### 6. TDD(Test-Driven Development)
TDD是一种开发实践,要求先编写测试用例,然后再编写能够通过这些测试的代码。这种方法有助于提高代码质量和可测试性。
#### 7. FIRST 测试原则
FIRST原则代表快速、独立、重复、自我验证和及时。这是对测试自动化的一种指导思想,旨在确保测试的有效性和效率。
#### 8. 类内方法 SOFA 原则
SOFA原则是单一职责、开放封闭、封装变化点的缩写,用于指导类内方法的设计。
#### 9. 类