添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Latest commit

History

History
162 lines (115 loc) · 8.09 KB

exam01.rst

File metadata and controls

Git练习题(A)

单项选择题

  • 如果提示提交内容为空、不能提交,则最为合适的处理方式是:_____
    1. 执行 git status 查看状态,再执行 git add 命令选择要提交的文件,然后提交。
    2. 执行 git commit --allow-empty ,允许空提交。
    3. 执行 git commit -a ,提交所有改动。
    4. 执行 git commit --amend 进行修补提交。
    5. 如果把项目中文件 hello.c 的内容破坏了,如何使其还原至原始版本? _____
      1. git reset -- hello.c
      2. git checkout HEAD -- hello.c
      3. git revert hello.c
      4. git update hello.c
      5. 修改的文档 meeting.doc 尚未提交,因为错误地执行了 git reset --hard 导致数据丢失。丢失的数据能找回么? _____
        1. 不能。执行硬重置使工作区文件被覆盖,导致数据丢失无法找回。
        2. 能。可以通过 git checkout HEAD@{1} -- meeting.doc 找回。
        3. 不确定。如果在重置前执行了 git add 命令将 meeting.doc 加入了暂存区,则可以在对象库中处于悬空状态的文件中找到。
        4. 不能。因为未提交所以无法找回。
        5. 仅将工作区中修改的文件添加到暂存区(新增文件不添加),以备提交,用什么命令标记最快? _____
          1. git add -A
          2. git add -p
          3. git add -i
          4. git add -u
          5. 下面哪一个命令 会改变提交历史? _____
            1. git reset --hard HEAD~1
            2. git checkout HEAD^^ .
            3. git rebase -i HEAD^^
            4. git commit --amend
            5. 我使用和其他人不一样的IDE软件,总是在目录下生成以 .xx 为后缀的临时文件。如何避免由于自己的误操作导致此类文件被添加到版本库中呢? _____
              1. 执行 git clean -f 删除临时性文件。
              2. 向版本库中添加一个 .gitignore 文件,其中包含一条内容为 *.xx 的记录。
              3. 在文件 .git/info/exclude 中添加一条内容为 *.xx 的记录。
              4. 更换另外一款IDE软件。
              5. 项目跨平台导致文件中的换行符不一致。其中有 Linux 格式换行符(0A),也有DOS格式换行符(0D 0A)。要如何避免此类情况呢? _____
                1. 修改 /etc/gitattributes 文件,在其中包含一条内容为 * text=auto 的设置。
                2. 执行命令 git config --global core.autocrlf true
                3. 执行命令 git config --global core.autocrlf input
                4. 向版本库中添加一个 .gitattributes 文件,在其中包含一条内容为 * text=auto 的设置。
                5. 下列对于版本库授权说法正确的是:_____
                  1. 可以为分支或路径设置不同的写入权限,但不能设置不同的读取权限。
                  2. 除管理员外,版本库的创建者都可以为自己创建的版本库授权。
                  3. 只要通过授权后,便不能限制所推送的提交的署名作者,可以是任何人。
                  4. 如果没有向版本库的写入权限,就一定没有读取权限。
                  5. 取消服务器版本库中ID为 a2387 的提交,而且不能引起历史提交的变更,用什么操作? _____
                    1. git rebase -i a2387^
                    2. git checkout a2387^ -- .
                    3. git revert a2387
                    4. git reset --hard a2387^
                    5. 从版本库中的历史提交中彻底移除ID为 a2387 的提交,用什么操作? _____
                      1. git reset --hard a2387^
                      2. git checkout a2387^ -- .
                      3. git revert a2387
                      4. git rebase --onto a2387^ a2387 HEAD
                      5. 所有改动的文件都已加入暂存区,若希望将其中的 other.py 文件下次再提交,如何操作? _____
                        1. git reset -- other.py
                        2. git checkout -- other.py
                        3. git checkout HEAD other.py
                        4. git reset --hard -- other.py
                        5. 若产品的版本号显示为 1.7.10.rc0-33-g9678d-dirty ,可以判断出此版本号是如何生成的么? _____
                          1. git tag
                          2. git describe --tags --always --dirty
                          3. git name-rev HEAD
                          4. git --version
                          5. 关于 git clone 下面说法 错误 的是:_____
                            1. 克隆时所有分支均被克隆,但只有HEAD指向的分支被检出。
                            2. 可以通过 git clone --single-branch 命令实现只克隆一个分支。
                            3. 克隆出的工作区中执行 git log git status git checkout git commit 等操作不会去访问远程版本库。
                            4. 克隆时只有远程版本库HEAD指向的分支被克隆。
                            5. 关于删除分支 XX ,下列说法正确的是: _____
                              1. 执行 git push origin :XX 来删除远程版本库的 XX 分支。
                              2. 执行 git branch -D XX 删除分支,总是能成功。
                              3. 远程版本库删除的分支,在执行 git fetch 时本地分支自动删除。
                              4. 本地删除的分支,执行 git push 时,远程分支亦自动删除。
                              5. 下面的操作中哪一个不能确认维护分支 maint 上所有的 bugfix 提交均已合并至当前分支 master 中。 _____
                                1. git rev-list ..maint 的输出为空。
                                2. maint 分支成功地执行 git merge master
                                3. git log ..maint 的输出为空。
                                4. 新版本发布,在 maint 分支执行 git merge --ff-only master 成功。
                                5. 一个图片文件 logo.png 冲突了,如何取出他人的版本。 _____
                                  1. git show :1:./logo.png > logo.png-theirs
                                  2. git show :2:./logo.png > logo.png-theirs
                                  3. git show :3:./logo.png > logo.png-theirs
                                  4. git show :0:./logo.png > logo.png-theirs
                                  5. 工作在特性分支,常常因为执行 git push 默认推送所有本地和远程共有分支,导致非当前分支报告 non-fast-forward 错误。如果设置只推送当前分支可避免此类问题。下面操作正确的是:_____
                                    1. git config --global push.default upstream
                                    2. git config --global pull.rebase true
                                    3. git config --global receive.denyDeletes true
                                    4. git config --global pager.status true
                                    5. 关于对象库(.git/objects)说法 错误 的是:_____
                                      1. 两个内容相同文件名不同的文件,在对象库中仅有一个拷贝。
                                      2. 对象库执行 git gc 操作后,reflog 会被清空导致其中记录的未跟踪提交及指向的文件被丢弃。
                                      3. 删除文件后,再通过添加相同文件找回,不会造成版本库的冗余。
                                      4. 对象库并非一直保持最优存储,而是通过周期性地执行 git gc 优化版本库。
                                      5. 关于子模组 错误 的说法是:_____
                                        1. 克隆父版本库,默认不会克隆子模组版本库。
                                        2. 子模组可以嵌套。执行 git submodule update --recursive 可对嵌套子模组进行更新。
                                        3. 子模组和父版本库的新提交,要先推送父版本库,后推送子模组。
                                        4. 子模组检出处于分离头指针状态(gitlink的指向),在子模组中工作需要手动切换分支。
                                        5. 当一个提交说明显示为 souce code refactor (fix #529) ,下面哪个说法是正确的? _____
                                          1. 这个提交只是代码重构,并未修复任何东西,因此没有改变版本库的提交历史。
                                          2. 这个提交修正了第529号提交,没有改变版本库的提交历史。
                                          3. 这个提交撤销了第529号提交,改变了版本库的提交历史。
                                          4. 这个提交和项目的缺陷跟踪平台(如Redmine)关联,并会更新相关问题的状态。
  •