第六章 敏捷开发与配置管理-作业题-关于Git的题目

小图所在的某校信息学院有一位程老师,他对生命游戏特别感兴趣,正巧他看到小图最近在研究生命游戏。程老师想了一些生命游戏的新规则,他想检验一下那些规则是否有效,于是拍了拍小图的肩膀,语重心长地说:“生命游戏能不能成为游戏界的主流,能不能在游戏史上留下浓墨重彩的一笔,就靠你们年轻人了!”然后程老师就把实现那些规则的任务交给小图了。什么?程老师为什么不自己实现?程老师这么多年的编程经验,什么样的程序没见过!这是给小图一个掌握编程经验的机会!
小图自己已经编写了一个有bug的生命游戏。目前的代码中存在一些bug,想到这小图就更慌了。幸好,小图有个从小穿一条裤子长大的好朋友。相信屏幕前那闪耀着智慧光芒的你已经猜到了,这位好朋友就是你!快来帮小图这个忙吧!小图想请你帮他一起去完成程老师提出的那些新规则。
为了更好地进行协作,你们决定用git版本库来管理代码。

1、小图首先在Github上创建了一个版本库(https://github.com/ThssSE/MOOC_LifeGame),然后马上在本地通过git clone将它克隆到了本地,这时git status中会提示On branch ( B)。
A dev
B master
C release
D Branch

2、小图首先把他已经编写好的代码文件全部放入了本地版本库中,然后想通过git commit提交,但提示提交内容为空,不允许提交,于是你通过(D)帮他解决了这个问题。
A git commit --amend,进行修补提交
B git commit -a,提交所有改动
C git commit --allow-empty,允许空提交
D git status查看状态,再执行git add命令选择要提交的文件,然后提交

3、提交后,你才发现不小心把一些临时文件(.xxx)也提交进去了,以下最好的解决方式是(C )。
A 编辑.gitignore文件,增加.xxx条目,然后git commit -a把.gitignore提交到版本库
B git rm删除*.xxx,然后git commit提交
C git rm删除*.xxx后再编辑.gitignore增加*.xxx条目,最后git commit --amend进行修补提交
D 幸好还没进行git push,重新clone然后重新添加文件后提交即可

4、折腾了半天,终于把小图的现有代码完整、干净地提交并push到了服务器上,你也本地clone了同一个版本库。请将版本库(https://github.com/ThssSE/MOOC_LifeGame)clone到本地,可以看到有多个分支,请切换到git-demo分支,然后先把git-demo-1合并至git-demo分支,会发生( A)。
A 合并成功,且不产生新的提交
B 合并成功,且产生一个自动merge的新提交
C 合并失败,因为出现了冲突(Conflicts)
D 合并失败,因为git-demo分支是git-demo-1的子分支

5、接着,请继续把git-demo-2分支合并至上述合并后的git-demo分支,会发生(C )。
A 合并成功,且不产生新的提交
B 合并成功,且产生一个自动merge的新提交
C 合并失败,因为出现了冲突(Conflicts)
D 合并失败,因为git-demo-2分支是git-demo-1的子分支

6、接下来你们将进行开发工作,做了分工,每人实现几个功能。你在本地新增了一个名为feature1的branch,关于这个branch,以下说法正确的是(B )。
A 在本地新增feature1后,远端服务器的版本库中也会自动出现一个同名分支
B feature1分支在本地被删除后,远端服务器的版本库中不会自动删除同名分支
C 可以指定将feature1分支提交到远端服务器的其他分支,但这会导致其他分支被覆盖,因此一般不这么做
D 可以指定将feature1分支提交到远端服务器的另一分支branch2,提交后可以手动再把branch2之前的最新提交merge到branch2去,因此不会丢失原branch2的提交

7、终于开始愉快地编程了,你们先进行bug的修复工作。你在修复某个bug时,非但没有完成修复,还导致了更严重的bug,这时你想把一个名为game的文件恢复至原始版本,只要执行(C )就可以了。
A git checkout --reset game
B git rm --revert game
C git checkout HEAD – game
D git ignore game

8、你又继续了bug修复,这回成功完成了修复。又过了一会儿,你在修复另一个bug时又不小心改乱了想恢复,于是用git reset
–hard来把另一个文件恢复,但小手一抖不小心把已经完成修复的game文件恢复了导致数据丢失。丢失了的数据还能找回吗?( D)
A 不能,硬重置使工作区文件被覆盖,导致数据丢失无法找回
B 不能,因为尚未提交
C 能,可以通过git checkout HEAD@{1} – game找回
D 不确定,如果在重置前执行了git add 命令将game加入了暂存区,则可以在对象库中处于悬空状态的文件中找到

9、你对一些文件进行了修改后,通过执行( D)就可以把当前工作区的所有被修改的文件都添加到暂存区且不添加新增的文件。
A git add .
B git add -A
C git add -m
D git add -u

10、你和小图都进行了一些开发工作,然后进行合并时,提示了出现conflicts,该怎么处理呢?(D )
A 这是因为你和小图同时push到服务器导致的,只要你们俩轮流push就不会有问题
B 这是因为合并时你们修改了不同的文件,导致无法合并,只要将被修改的文件在另一个待合并的分支也相应修改就能解决
C 这是因为合并时你们修改了同一个文件,因此合并后只能保留其中一个分支的该文件,要顺利解决可以先将文件备份,然后合并后再手动将变动同步过来
D 这是因为你们对同一个文件的同一个位置进行了不同的改动,合并后会有特殊标记标明冲突的部分,进行处理后再提交即可解决冲突

11、以下文件片段,表示该片段发生代码冲突的是( B)
A <<<<<<< feature-2 if name == ‘main’: ======= if os.path.basename(file) == ‘main.py’: >>>>>>> HEAD
B <<<<<<< HEAD if name == ‘main’: ======= if os.path.basename(file) == ‘main.py’: >>>>>>> feature-2
C ======= HEAD if name == ‘main’: <<<<<<< if os.path.basename(file) == ‘main.py’: ======= feature-2
D ======= feature-2 if name == ‘main’: >>>>>>> if os.path.basename(file) == ‘main.py’: ======= HEAD

你可能感兴趣的:(软件工程雨课堂习题,git,github,软件工程)