GitHub 基础测验(20201209)
说明: 本测验共包含 5 道应用题,请同学们直接在题目下方使用 Markdown 语言作答(建议适当引用图片),并通过课堂派提交源文件(压缩包与 Markdown 文件均命名为
1209_TW测验_学号_姓名
,压缩包内包含.md
文件与图片等附件)
Q1:Git 基础
请结合 Git 命令(如 git add .
)简述如何创建、切换、合并与删除一个 Branch。
答:
首先在branch操作前我先完成git的初始化等操作。
对于新的工程可以采用 git init 命令。
我这里选择用 git clone 命令克隆一个自己以前的仓库(不过里面并没有什么东西)
git clone https://github.com/lemondante/Open-source-project-team_2020.git
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-75j3miVS-1609670371765)(./clone.jpeg)]
观察当前的branch情况
git branch
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D70CRk7Y-1609670371768)(./see_branch.jpeg)]
新建一个branch名为 newtest
git branch newtest
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0Uax0tm-1609670371769)(./new_branch.jpeg)]
再次查看branch情况
git branch
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VlDmBsYu-1609670371771)(./see_branch2.jpeg)]
从master branch切换到 newtest branch
git checkout newtest
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ufUm0Cst-1609670371773)(./change_branch.png)]
接下来可以观察两个branch的不同。
首先我们在newtest中随便添加一个文件
touch test1.txt
采用 git add 命令保存所有的改动(可以看到保存后newtest分支后有了一个+号)
git add .
采用git commit命令提交改动
git commit -am 'add test1.txt'
然后在newtest下可以看到是有test1.txt这个文件的。
当把branch切回到master后,可以看到文件消失了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NRWEafQF-1609670371774)(./difference.jpeg)]
用 merge 命令可以合并其他分支
git merge newtest
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c6p7fuJI-1609670371775)(./merge.png)]
利用 -d 命令删除branch
git branch -d newtest
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mdQ4GcFl-1609670371776)(./delete_branch.png)]
Q2:GitHub 基础(1)
请简述 GitHub 中 Pull Request 的含义与使用方法。
答:
Pull Request ,正确的含义应该是 请求 他人 拉取 你修改的内容。
整个PR的过程为:首先fork他人的仓库,然后可以选择新的分支,在本地修改后进行保存、提交、推送等操作(具体可见上一题)。在此之后如果觉得有必要合并到别人原始的仓库,则点击Pull request按钮发起请求。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NfuDD48b-1609670371778)(./pr.jpeg)]
Q3:GitHub 基础(2)
请简述为一个 GitHub 仓库添加 Collaborators 的方法。
答:
在GitHub中想要操作的仓库页面选择 Settings 标签页,再在左侧选择 Manage access 标签页,点击 invite a collaborator 并输入想要邀请的人的用户名即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xYK5dL68-1609670371779)(./manage_access.png)]
Q4:GitHub Desktop
请简述使用 GitHub Desktop 对一个 GitHub 远程仓库进行 Clone、添加文件与推送远端的过程。
答:
Mac客户端下,左上角 File->Clone Repository
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NA98U5bn-1609670371780)(./clone_desktop.png)]
选择 url 标签页 填入要克隆的URL即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iwqi0I0j-1609670371781)(./url_page.png)]
随后即可在此工作文件夹内进行操作。当内容发生改变后会在左侧的 Changes 中显示,可以在输入 summary 和 description 后点击下面的 Commit to master 进行提交。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dNkIAWZ5-1609670371783)(./commit.png)]
再点击上方的 Push 按钮推送即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AJSjnmXi-1609670371784)(./push.png)]
Q5:Git 与 GitHub 综合
下图展示了使用 Git 和 GitHub 处理文件的完整流程,请简述下图各流程的基本含义。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jBUoScKH-1609670371785)(full-git-process.png)]
答:
在最早有一个 starter GitHub repo(其他人的仓库),用户从里面 Fork 一个仓库到自己的GitHub账号的云端仓库列表内,利用 clone 功能下载到本地。此时可以对这个工程(也就是仓库内的文件)进行一系列的操作,操作后需要用add命令保存也就是将其添加到暂存区,也就是 staging area 。之后需要用 commit 功能提交到本地仓库。最后如果需要提交到GitHub云端保存,就需要用 push 功能推送到云端。
add和commit的一个明显区别在于,commit要求写summary和description而add不需要,因为commit是提交到仓库作为工程的一部分,有一定的规范要求,而add只是暂时保存到暂存区。
就需要用 push 功能推送到云端。
add和commit的一个明显区别在于,commit要求写summary和description而add不需要,因为commit是提交到仓库作为工程的一部分,有一定的规范要求,而add只是暂时保存到暂存区。