【技能树学习】Git入门——练习题解析

前言

本篇文章给出了Git入门技能树中部分的练习题解析,包括分支管理,Git标签,在Mac和Windows上使用Git+VSCode的步骤。强调了git cherry-pick不直接支持从标签中选择提交,git tag -d只能删除本地标签,Mac系统的终端可以安装Homebrew并使用Homebrew安装git。在VSCode中,可以通过命令行或终端直接指定目录,也可以通过拖拽文件夹到VSCode界面来打开目标文件夹。提交变动到Git仅将变更保存在本地仓库,要将这些变更推送到远程仓库,需要执行推送(push)操作。

【技能树学习】Git入门——练习题解析_第1张图片

1 Git简介

题目1:

版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。
下列哪个不是版本控制系统的正确使用方式?
A.管理项目源代码和项目文本文档(特别是MarkDown文件)
B.管理软件项目,使用版本控制系统来管理软件项目是一个明智的选择。
C.管理文档项目,版本控制系统非常适合用来管理文档项目。
D.当做网盘使用,版本控制系统就是用来做网盘的,特别适合存放大量的二进制文件。

答案解析: D.当做网盘使用,版本控制系统就是用来做网盘的,特别适合存放大量的二进制文件。

版本控制系统主要设计用于跟踪文本文件的变化,并提供协作和版本管理的功能。虽然版本控制系统可以管理任何类型的文件,但它并不是专门设计用于替代传统的文件存储和共享方式,如网盘。版本控制系统对于文本文件的变更记录和合并功能更为强大,而对于大量的二进制文件,如图像、视频等,可能会占用更多的存储空间,并且版本比较和合并可能不如对文本文件那么有效。因此,将版本控制系统当做简单的网盘并不是其正确的使用方式。

题目2:

你知道 Git 属于哪种版本控制系统吗?

Git是一款免费、开源的分布式 版本控制系统,用于敏捷高效地处理任何或小或大的项目。

以下哪个是 Git 版本控制系统的类型?
A.本地版本控制系统

B.集中式版本控制系统

C.分布式集中控制系统

D.云端版本控制系统

答案解析: C.分布式集中控制系统

Git属于分布式版本控制系统,因此正确的选项是:C.分布式集中控制系统

题目3:

Git简介

Git是一款免费、开源的分布式 版本控制系统,用于敏捷高效地处理任何或小或大的项目。

以下哪个不属于 Git 的优点?

A.免费且开源,Git是一款免费、开源的分布式 版本控制系统。
B.分布式集中控制系统,Git是一款免费、开源的分布式 版本控制系统。
C.开发者有完整的克隆代码仓,其中包含所有变更历史,Git是分布式版本控制系统,每个开发者都拥有完整的仓库及历史记录
D.开发者需要连接到服务器才能查看代码变更历史

答案解析: D.开发者需要连接到服务器才能查看代码变更历史

Git是一款分布式版本控制系统,每个开发者可以在本地拥有完整的仓库及历史记录,不需要连接到服务器就能查看代码变更历史。所以,D选项是描述 Git 优点的错误陈述。

2 Git安装

题目1:

查看 Git 用户名和邮件
Git 安装完之后,通常第一件事就是设置你的用户名和邮件地址。当你配置用户名和邮件地址后,执行git config --list命令时,通常不会看到以下哪个信息?
A.user.name
B.user.email
C.user.name 和 user.email
D.color.ui

答案解析: D.color.ui

当你配置用户名和邮件地址后,执行git config --list命令时,通常会看到 user.nameuser.email 信息,但 color.ui 是用于配置 Git 输出中的颜色信息的,与用户名和邮件地址无直接关系。

题目2:

Git忽略文件.gitignore
把要忽略的文件名添加到 .gitignore 文件中,Git 在每次进行提交的时候就会自动忽略这些文件。 以下哪个不是 .gitignore 配置文件的正确写法?

A…*,这个表示排除所有.开头的隐藏文件
B.!.gitignore,这个表示不排除.gitignore
C…class,这个表示排除所有.class文件
D.#app,这个表示 app 会被git执行

答案解析: D.#app,这个表示 app 会被git执行

.gitignore文件中,行首以井号(#)开头的内容被视为注释,而不是用于匹配要忽略的文件。因此,#app 不是正确的写法,它会被当作注释而不是忽略规则。

题目3:

Git 配置别名
配置 Git 别名的命令格式为 git config --global alais.XXXX ‘git-origin-commands’。 以下哪个是 git 别名的配置方法?

A.git add -f App.class
B.git config --global alias.last 'log -1’
C.git config --global user.email [email protected]
D.git reset HEAD file

答案解析: B. git config --global alias.last 'log -1'

这命令会配置一个 Git 别名,使得可以通过 git last 来代替 git log -1

3 Git使用

题目1:

Git 仓库创建
以下哪个命令不能用于创建 git 仓库?

A.git checkout 可直接将一个远程git仓库签出到本地。
B.git clone 可用于克隆已经存在的 git 仓库。
C.git init 可在已经存在的目录中创建一个新的 git 仓库。
D.git init 初始化一个空的新项目,然后通过 git remote add origin https://gitcode.net/example-project.git 和某个远程git仓库关联起来。

https://profile-avatar.csdnimg.cn/bdfd05e0bbe246e2966901c2a81b12bd_community_717.jpg!1

https://profile-avatar.csdnimg.cn/bdfd05e0bbe246e2966901c2a81b12bd_community_717.jpg!1

答案解析: A. git checkout 可直接将一个远程git仓库签出到本地。

git checkout 主要用于切换分支或恢复工作目录中的文件,而不是用于创建新的 Git 仓库或克隆远程仓库。创建新仓库可以使用 git init,克隆远程仓库可以使用 git clone

题目2:

Git查看当前仓库状态变化
用git status命令可以看哪些内容?

  1. 上次提交的提交信息是什么
  2. 工作目录中有哪些文件还没有放进暂存区
  3. 暂存区中有哪些内容还没有提交到仓库
  4. 上次提交修改了哪些内容

答案解析:2 3

git status 命令可以展示以下信息:

  • 工作目录中有哪些文件还没有放进暂存区
  • 暂存区中有哪些内容还没有提交到仓库

题目3:

Git使用
以下对 git 分组命令作用描述不正确的是?

A.添加文件命令: git add / git commit

B.这组用来创建仓库: git reset / git commit

C.恢复文件: git log / git reset

D.创建仓库命令: git init / git clone

答案解析: B.这组用来创建仓库: git reset / git commit

git resetgit commit 不是用来创建仓库的命令。git reset 通常用于撤销之前的提交或更改工作区和暂存区的状态,而 git commit 用于提交更改到仓库。创建仓库通常使用 git initgit clone

4 版本管理

题目1:

版本管理
上述那些是对 git 版本管理的描述不正确的是?
A.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file
B.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git delete
C.已经提交了不合适的修改到版本库时,想要撤销本次提交,可以用命令git reset --hard commit_id,不过前提是没有推送到远程库
D.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,然后想直接丢弃工作区的修改时,用命令git checkout – file

答案解析: B.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git delete

正确的命令应该是 git checkout -- file,而不是 git deletegit checkout -- file 用于丢弃工作区中某个文件的修改。

【技能树学习】Git入门——练习题解析_第2张图片

5 分支管理

题目1:

分支管理
git cherry pick 是一个很强大的命令,他可以支持从某次/多次提交、多次连续的提交、分支以及其他远程仓库中进行代码的应用操作。以下哪个是 Cherry Pick 的错误用法
A.git cherry-pick 回答错误,该命令表示应用某个分支的最近一次提交到当前分支。
B.git cherry-pick 回答错误,该命令表示应用多个提交到当前分支。
C.git cherry-pick 该命令表示应用某个tag的提交到当前分支
D.git cherry-pick A^…B 该命令表示应用包含A的多次提交到当前分支。

答案解析: C. git cherry-pick 该命令表示应用某个tag的提交到当前分支。

Cherry-pick 不直接支持从标签(tag)中选择提交进行应用。 Cherry-pick 主要用于选择某个分支上的提交并将其应用到当前分支。

【技能树学习】Git入门——练习题解析_第3张图片

6 Git标签

题目1:

Git标签
以下描述错误的是?
A.命令git tag -d 可以同时删除一个本地标签和远程标签;
B.命令git push origin 可以推送一个本地标签;
C.命令git tag -a -m 'messages’可以创建一个带附注的标签
D.命令git tag -s -m 'messages’可以创建一个带 gpg 签名的标签

答案解析: A. 命令 git tag -d 可以同时删除一个本地标签和远程标签;

这是错误的描述。git tag -d 只能删除本地标签,要删除远程标签需要额外的步骤,如使用 git push origin --delete

【技能树学习】Git入门——练习题解析_第4张图片

7 极简Git+VSCode(Mac)

题目1:

极简 Git+VSCode for Mac(1): 安装Git
第一步,请执行以操作打开Mac下的终端。

  1. 点按程序坞中的“启动台”图标 ,在搜索栏中键入“终端”,然后点按“终端”。
  2. 在“访达” 中,打开“/应用程序/实用工具”文件夹,然后连按“终端”。
  3. 打开的“终端”一般如下图所示:略

第二步,请执行以操作安装Mac下的包管理软件:brew
简单介绍下brewbrew是一个包管理软件,用来安装、更新、卸载Mac上的其他工具包和库。

  1. 拷贝命令:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 在“终端”里粘贴
  3. 回车执行,等待brew安装完成,有时候网络慢会等的旧一点,必要时请开VPN。

安装过程如图所示:略

安装成功后,如图所示:略

第三步,请执行以操作,使用刚刚安装的 brew 来安装 git 的最新版本。

  1. 拷贝命令:brew install git
  2. 在“终端”里粘贴
  3. 回车执行,等待brew安装完git。
  4. 安装成功后,关闭终端并重现打开。
  5. 重新打开终端后,输入命令git --version并回车,查看git的最新版本号。

开始安装如图所示:略

安装过程如图所示:略

安装成功如图所示:略

好了,经过上述操作,你已经成功在Mac系统上使用终端安装了git的最新版本。以下说法错误的是?
A.Mac下无法打开终端,Mac下的终端无法安装brew,Mac下的终端即使装了brew也不能使用brew安装git。
B.Mac的终端在“应用程序/实用工具”目录下。

C.查看 git 版本号的命令是: git --version

D.使用 brew 安装 git 的命令是: brew install git

答案解析: A. Mac下无法打开终端,Mac下的终端无法安装brew,Mac下的终端即使装了brew也不能使用brew安装git。

这是错误的说法。Mac系统的终端可以打开,并且可以通过终端安装Homebrew(brew),然后使用Homebrew安装git。正确的说法是:

  • B. Mac的终端在“应用程序/实用工具”目录下。
  • C. 查看 git 版本号的命令是: git --version
  • D. 使用 brew 安装 git 的命令是: brew install git

题目2:

极简 Git+VSCode for Mac(2): 在GitCode上创建一个Git仓库

第1步:登陆GitCode

  1. GitCode 是CSDN官方的Git代码仓库中心,网站地址是: https://gitcode.net
  2. GitCod 的登陆账号就是你的 CSDN 账号。
  3. 请使用 CSDN 账号登陆 GitCode

登陆前如图所示:

登陆后如图所示,如果在移动端安装了CSDN App,也可以通过 CSDN App 扫码登陆:

点击右上角的用户头像图标,在下拉菜单里点击“个人主页”,进入你的GitCode个人主页:

第2步:创建一个Git仓库

  1. 在GitCode个人主页右上角,点击+号按钮,在下拉菜单里点击“新建项目”
  2. 在新建项目页面里选择“创建空白项目”
  3. 在“创建空白项目”配置页面填写“项目名称”,“项目描述”,并勾选“使用自述文件初始化仓库”
  4. 最后点击“新建项目”,创建项目。

新建项目按钮如图所示:

选择创建空白项目如图所示:

“创建空白项目”配置页面填写“项目名称”,“项目描述”,并勾选“使用自述文件初始化仓库”。例如这里第一个项目起名叫做“hello_git”

点击“新建项目”后,如图所示:

第3步:使用Git命令克隆仓库到本机

  1. 在Git项目页面上拷贝仓库地址。
  2. 在本机适用 Git 命令将仓库克隆下来。

如图所示,点击仓库页面上的“克隆”按钮,选择“通过 HTTPS Clone 项目”的地址,并拷贝。这里示例的是:https://gitcode.net/huanhuilong/hello_git.git

如图所示,在本机打开“终端”,输入命令pwd,并回车,查看当前终端环境下的工作目录位置,下图显示当前目录在Mac系统个人用户目录下。

如图所示,我们希望将终端环境的工作目录切换到桌面。输入命令cd /Users/feilong/Desktop,并回车,进入到桌面。再次输入pwd并回车可以看到工作目录已经切换到了桌面。(注意这里的"feilong"应该替换为你自己的Mac系统用户名)

如图所示,现在我们使用 Git 命令来克隆前一节创建的 Git 仓库。输入命令git clone https://gitcode.net/huanhuilong/hello_git.git,并回车。

如图所示,Git 会将在GitCode上创建的仓库克隆到本机:

如图所示,此时Mac电脑的桌面上已经有了"hello_git"这个目录:

第4步:请回答问题:

通过上面的几个步骤,你已经学会了如何在 GitCode 上创建一个Git仓库,并克隆到本机,以下描述错误的是?
A.GitCode 上创建Git仓库时,可以选择创建空白项目,并配置“项目名称”,“项目描述”,创建时可以勾选“使用自述文件初始化仓库”以简化仓库数据初始化。
B.GitCode 上可以创建并托管一个Git仓库。

C.GitCode 不用登陆就可以创建Git仓库,并且会自动将Git仓库从远程克隆到本机。

D.GitCode 可以使用 CSDN 账号登陆。

答案解析: C. GitCode 不用登陆就可以创建Git仓库,并且会自动将Git仓库从远程克隆到本机。

这是错误的描述。通常,在大多数代码托管平台,包括 GitCode,创建Git仓库时需要先登录账号。并且,创建仓库后你需要手动克隆到本机。

题目3:

极简 Git+VSCode for Mac(3): 安装VSCode并打开Git仓库

  1. 打开 https://code.visualstudio.com/ 下载 VSCode Mac版
  2. 解压 VSCode-darwin-universal.zip,得到 Visual Studio Code.app
  3. 将 Visual Studio Code.app 拖放到 Mac 的“应用程序”里
  4. 在应用程序里双击Visual Studio Code打开 VSCode
  5. 在VSCode 里按快捷键“command+shift+p”
  6. 在打开的输入框里输入 “shell command”
  7. 点击下拉菜单:“Shell Command: install ‘code’ command in PATH”
  8. 这样我们就在终端里安装了一个命令code,通过这个命令可以在终端里使用code {dir}来使用VSCode打开指定目录。
  9. 例如打开Mac的终端,输入 cd /Users/feilong/Desktop/hello_git 进入到上一节克隆到本机的Git仓库目录。
  10. 然后执行命令:code .,并回车,就会使用VSCode打开 hello_git 仓库目录。
  11. 当然,也可以在打开VSCode后,通过菜单“文件->打开文件夹”的方式打开 hello_git 目录。取决于你更喜欢命令行还是GUI操作。

如图所示,下载VSCode并安装:

如图所示,安装code命令到终端:

如图所示,在命令下使用code .命令打开仓库,这里的 . 表示当前目录。

如果所示,VSCode里打开了仓库目录,会提示是否信任目录,点击信任。

如图所示,VSCode打开了 hello_git 仓库,点击“README.md”文件并显示

经过上述操作,你已经学会安装VSCode并打开Git仓库了,以下描述错误的是?
A.VSCode 可以通过菜单 文件->打开文件夹 来打开目标文件夹。
B.Mac下安装VSCode实际上就是把VSCode程序拷贝到Mac访达里的的“应用程序”下即可。

C.VSCode 只能通过菜单 文件->打开文件夹 来打开目标文件夹。

D.VSCode 可以通过注册code命令到终端,在终端里使用code {dir} 的方式打开目录。

答案解析: C. VSCode 只能通过菜单 文件->打开文件夹 来打开目标文件夹。

这是错误的描述。事实上,除了通过菜单,VSCode 还可以通过命令行或终端直接指定目录,也可以通过拖拽文件夹到 VSCode 界面来打开目标文件夹。所以选项 C 中的说法是不准确的。

题目4:

极简 Git+VSCode for Mac(4): 使用VSCode添加MarkDown文件到Git仓库

如图所示,在VSCode的左侧导航列表里,使用右键菜单新建一个目录:doc,并在doc目录下新建一个MarkDown文件test.md

如图所示,在test.md里编辑几行MarkDown文本(MarkDown语法请学习本技能树第二章),并保存。

如图所示,点击VSCode左侧的“Git面板按钮”,切换左侧导航栏。可以看到按钮上也显示里一个数字1,表示有一个文件发生变动。这里是新增了一个test.md文件。

如图所示,在“源代码管理”下的输入框里输入一个提交信息,这里输入“第一次提交”。

如图所示,在打勾图标的“提交”按钮,将文件的变动提交到Git本地。注意这里的提交只是将变动的文件提交到Git的本地索引系统里,还并不是提交到Git远程仓库。

如图所示,弹框会提示你还没有可提交到暂存更改。这是由于将文件变动提交到Git本地索引是需要两个步骤的,先将文件变动加入到暂存更改,再将暂存更改提交到Git本地索引。这里只需要点击「是」,VSCode会自动把两个步骤都做掉。

如图所示,提交后,VSCode左侧按钮栏的“Git面板按钮”上的数字消失了。我们希望将本地修改推送到GitCode的远程仓库。但是GitCode仓库上,仓库的其他成员可能也添加了文件,因此一般需要在推送前先拉取下变动到本机,如果拉取的过程中远程仓库的文件和本地的文件有冲突,则需要解决冲突,如何解决冲突不在本节考虑的范围。

如图所示,我们进一步点击下来菜单,点击“推送”按钮,将Git仓库的本地索引变动推送到GitCode上的远程仓库。

如图所示,Mac系统可能会提示你输入GitCode仓库的用户名密码,或者之前已经配置过,但是首次推送也会提示是否允许使用。根据提示做相应的授权即可。

如图所示,推送成功后,打开GitCode的 hello_git 仓库,可以看到新增的doc/test.md文件已经提交到仓库。

经过这些操作,你已经学会了在VSCode里给Git仓库添加文件,提交到Git本地索引,拉取远程Git仓库变动到本机,再推送本地Git仓库的变动到远程仓库。以下描述错误的是?
A.VSCode 里文件变动后直接点提交实际上会提示你是否先将文件变动添加到Git的暂存区,再进一步将暂存区变动提交到Git本地索引。
B.一般情况下推送数据到远程仓库之前,最好先拉取下远程仓库的变动到本地,可能的话需要解决冲突。

C.Git 仓库的文件发生变化后,VSCode左侧的Git面板按钮上会显示有变动的文件个数。

D.Git仓库文件编辑后,提交变动到Git后,文件就已经推送到了远程仓库。

答案解析: D. Git仓库文件编辑后,提交变动到Git后,文件就已经推送到了远程仓库。

这是错误的描述。提交变动到Git仅将变更保存在本地仓库,要将这些变更推送到远程仓库,需要执行推送(push)操作。提交(commit)和推送(push)是两个独立的步骤。

【技能树学习】Git入门——练习题解析_第5张图片

8 极简Git+VSCode(Windows)

题目1:

极简 Git+VSCode for Windows(3): 安装VSCode并打开Git仓库

  1. 打开 VSCode下载页面 下载 Windows 版,安装System Installer 对应的版本。
  2. 双击 VSCodeSetup-x64-x.yy.z.exe 开始安装
  3. 在开始菜单中找到 Visual Studio Code 打开 VSCode
  4. 打开VSCode后,通过菜单“文件->打开文件夹”的方式打开 hello_git 目录。

如图所示,打开 https://code.visualstudio.com/ 下载 Windows 版:

如图所示,安装 vscode:

如果所示,VSCode里打开了仓库目录(如提示是否信任目录,点击信任)

如图所示,VSCode打开了 hello_git 仓库,点击“README.md”文件并显示

经过上述操作,你已经学会安装VSCode并打开Git仓库了,以下描述错误的是?
A.VSCode 可以通过菜单 文件->打开文件夹 来打开目标文件夹。
B.VSCode Windows 版本可以在官方网站上免费下载使用。

C.VSCode Windows 版本只需要根据安装向导同意协议并点击下一步即可完成安装。

D.VSCode 只能通过菜单 文件->打开文件夹 来打开目标文件夹。

答案解析: D.VSCode 只能通过菜单 文件->打开文件夹 来打开目标文件夹。

你可能感兴趣的:(技能树学习,学习,git,技能树)