02组_现代软件工程_第02次作业——初谈GitHub使用详解以及设计
现代软件工程第二次作业
——初谈GitHub使用详解以及设计
一、目标任务(图文并茂):
1.参照http://www.cnblogs.com/xinz/p/3803109.html的第一题
A.每人创建一个GitHub账号
B.组长创建一个Project
C.添加组员进入Project中的Collaborators,并添加zykgnyue为Collaborator。
2.每人创建一个HelloWorld项目。
A.练习使用git基本命令add/commit/push/pull/fetch/clone等
B.比较新旧版本内容的差别。
3.完成小组“CanTool”项目的需求文档
A.使用Markdown编写文档
B.组员各自PC上修改同一文档后,使用GitHub上文档更新,不产生冲突
C.验证GitHub上的文档为最新文档。
二、操作步骤
李聿轩完成部分
2.1第01题处理
—————————————————————————————————————————————————————————————————————————————
2.1.1创建Github账号
登录github官网,网络链接地址:https://github.com/
图2-1-1-1 主登录界面 图2-1-1-2 登录界面 图2-1-1-3 注册界面
注意:
①主登录界面的右上角分别有:A.Sign in按钮 B.Sign Up按钮
②用户欲登录首先需要具有账户,则可以进入图2-1-1-3 注册界面进行相应的操作
图2-1-1-4 下一个注册界面 图2-1-1-5 注册界面的细节填写界面 图2-1-1-6 注册成功界面
③“Choose your personal plan”是选择私人的策略信息,
第1个为免费,可拥有私人的程序仓库(repos)进行数据保管,他人不可视;
第2个为付费,公用的。
④“Help me set up an organization next”选不选中均可以。
图2-1-1-7 邮箱唤醒界面
⑤当用户想要完成账户的申请,就需要在Github中注册的邮箱进行唤醒操作,因为在用户填写完成Github的账户确认信息以后,会自动向邮箱内发送邮件
2.1.2 创建一个项目
图2-1-2-1 点击“Start a project”按钮出现的界面 图2-1-2-2
注意:
①其中“Initialize this repository with a README”需要进行选中。
图2-1-2-3 Github物理结构图 图2-1-2-4 Github运行时序图
②图2-1-2-3为Github的物理结构图,服务器和本地库之间是通过客户端进行连接的,当服务器有程序更新时,用户通过客户端的fetch/pull操作把服务器端的内容进行更新,下载至本地的库中,如果有不同,就进行相应的合并等操作,当本地的数据发生变化,可以将文件进行commit提交,然后push推送到服务器端进行相应的操作。
③图2-1-2-4为此一过程的时序图
④其相应的操作步骤为:
A.在本地的工作目录中,修改某些文件
B.对于修改后的文件进行快照操作,并保存到“暂存区域”
C.持久化操作commit,通过push操作将暂存区域的文件快照保存到Git目录中。
⑤对于客户端的软件主要有两种:
图2-1-2-5 图2-1-2-6
A.图2-1-2-5所示的软件为Github官网强烈推荐的“Windows for Github”软件,此软件操作简单(通过界面图形化的操作将任务完成)
B.图2-1-2-6所示的软件通过命令行进行操作,需要进行相应的基本操作
2.1.3 添加成员
图2-1-3-1 个人界面 图2-1-3-2 项目界面 图2-1-3-3 设置界面
图2-1-3-4 Collaborators操作界面 图2-1-3-5 邮箱回复样 图2-1-3-6 添加成功界面
注意:
①其中由于每个用户都在Github官网上注册了账户,所以具有一一对应的关系,用户可以通过搜索直接找到对方并且添加,然后由系统发送添加的请求。
②邮件会发送到用户注册的Github的邮箱中。
————————————————————————————————————————————————————————————————————————————
2.2 第02题处理
2.2.1 使用Windows for Github客户端软件进行相应的操作
图2-2-1-1 Windows for Github客户端下载页面 图2-2-1-2 客户端主界面 图2-2-1-3 创建repository界面
图2-2-1-4 创建的本地库的效果图 图2-2-1-5 Options选项 图2-2-1-6 修改其中的test文件
图2-2-1-7 客户端变化的效果图 图2-2-1-8 服务器端的变化效果图
注意:
①在Github的项目页中会提示两种方式的客户端程序:
A.Set up in Desktop 建立桌面项;
B.HTTPS SSH在网络进行数据配置;
②如图2-2-1-2,点击 File>>New repository ,结果如图2-2-1-3所示,其中的“Initialize this repository with a README”选项需要被勾选,从而能够保有相关信息项,效果如图2-2-1-4所示。
③然而此时仍然无法和服务器端的Github进行交互,需要点击File>>Options ,结果如图2-2-1-5,其中添写正确username以及email,此两个选项都是用户在服务端Github中需要正确填写的。
④当用户在本地的工作区新增名为“test.txt”的文件时,客户端就会发生变化如图2-2-1-7所示,此时用户需要填写必要的描述,并且点击commit按钮,然后点击push按钮,结果如图2-2-1-8所示。
2.2.2 客户端命令行操作
图2-2-2-1 服务端创建new repository界面 图2-2-2-2 创建的下一步操作 图2-2-2-3 创建HelloWorld项目效果图
注意:
①如果需要在本地的客户端进行管理,首先需要在服务器端创建repository内容,进行完成。
图2-2-2-4 进行命令行操作的界面
②由于已经安装了命令行的客户端,所以在桌面中右键鼠标,就可以出现相应的选项,选择“Git Bash Here”选项即可。
图2-2-2-5 命令行进入新目录 图2-2-2-6 使用Clone命令 图2-2-2-7 Clone命令行的结果
图2-2-2-8 使用status命令 图2-2-2-9 使用add命令后效果 图2-2-2-10 使用commit命令
图2-2-2-11 使用push命令 图2-2-2-12 使用push后的服务器端的Github的结果图
图2-2-2-13 使用fetch命令 图2-2-2-14 使用diff与merge命令 图2-2-2-15 本地的库中信息变化图
注意:
①如图2-2-2-5所示,本命令行的客户端软件的操作语句和Linux的shell语句十分接近,系统默认会把内容桌面上,为了使得程序更加安全,可以转变工作区的位置。
A.首先在目标磁盘建立一个相应的文件夹,其名需要和服务器端的Github中项目名称一致。
B.使用进入磁盘的语句(以G盘为例)为:
$ cd G:
$ cd DeveloperProject 即可以进入指定盘符位置。
②而后根据需要进行$ git clone [网络Github中的链接位置],然后系统就会自动将文件拷贝到当前已经创建的工作区中,过程如图2-2-2-6所示,结果如图2-2-2-7所示。
③输入 $ cd HelloWorld,当用户向该文件中添加新的文件"text.txt",输入$ git status 过程如图2-2-2-8所示,其结果,为"text.txt"为红色字样,表示该文件未进行操作,然后,输入$ git add .其中“add .”表示为添加该“HelloWorld”文件夹下的所有文件,再输入$ git status,过程和结果均如图2-2-2-9所示。
④进行commit操作,需根据图2-2-2-10所示.
其中,
$git config --global user.email "目标的邮箱地址 "
$git config --global user.name"用户注册名称"
这一对操作是当用户第一次和服务器端Github进行交互的时候,必须填写的内容。
而后进行 $git commit -m "需要进行描述的语句",此处"-m"以及其后的内容都需要进行填写。
⑤图2-2-2-11为push的操作图,图2-2-2-12为服务器端的Github项目中的结果图。
以上都是客户端首先更新,然后需要服务器端进行相应的更新操作。
⑥ 图2-2-2-13,图2-2-2-14为当服务器端Github的客户项目进行变化时,如何与本地的程序库中的数据进行相应更新的操作。
其中需要注意的是fetch与pull本身的差别不是很大,然而如果想让服务器端的变化影响到本地,就需要使用$ git diff以及$ git merge进行相应的连用。,其结果如图2-2-2-15所示。
—————————————————————————————————————————————————————————————————————————————
2.3 第03题处理
图2-3-1 Markdown书写的基本功能模块 图2-3-2 Markdown书写的效果图
图2-3-3 使用命令行add . 图2-3-4 使用命令行commit 图2-3-5 使用命令行后的结果
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
杨智部分
第03题目
图3-1 需求分析提纲
图3-2 github 需求分析多人合作改写测试
图3-3 获取最新的需求分析提纲
图3-4 本地保管库
图3-5 需求文档第一部分撰写界面(由维护人A负责)
图3-6 需求文档第二部分(由维护人B完成)
图3-7 已经完成的第一部分需求分析
图3-8 递交到github
图3-9 递交完成
图3-10 维护者B从git上获取最新的需求文档
使用pull方法将最新文档同现有的文档做merge操作,使得本地保管库中的需求文档更新加入由维护者A递交的第一部分内容。
(pull的操作顺序为git add . /git pull)
图3-11 在gitbash中用Vim操作方法递交commit message
写完commit message之后按Esc输入“:wq”确认递交。
图3-12 维护者B成功从git中Merge需求文档
图3-13 Merge成功
图3-14 使用git指令将最新的merge后的文档push到git
图3-15 维护者A从git上Pull最新的需求文档