3组现代软件工程第二次作业

Posted zhi_rui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3组现代软件工程第二次作业相关的知识,希望对你有一定的参考价值。

一:参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的Collaborators,并添加zykgnyue 为Collaborator。

- 简历github账号:

 

- 创建一个名为SoftwareProject的项目:

- 添加组员为Collaborator

 二:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。

1. 詹睿:

创建一个HelloWorld项目:

创建SSH Key:

复制id.rsa.pub里面的ssh key,并与自己的github号进行绑定

在本地创建一个HelloWord的文件夹,并在里面创见一个helloworld.c文件,并用NotePad进行编辑

使用Git命令将本地HelloWorld文件变成一个Git仓库

设置仓库的用户名和邮箱

add helloWorld.c并commit


查询状态和日志

将本地仓库上传到远程仓库,这里由于第一次上传的时候误以为没有上传成功,后来上传导致错误。

为了再次上传成功,使用pull和push命令重新上传

在github上对helloWorld.c进行更改并commit

 

然后使用clone来架构github上的远程仓库拷贝下来

在本地HelloWord仓库文件夹下,使用fetch命令将更新的文档取回本地

 

使用diff命令查看分支的差异,由于在创建helloWorld.c文档并编辑时,忘记保存,导致最初上传到github上的文档为空文档。后来在github上进行编辑修改,导致整个代码都为difference.

使用merge将两个分支进行合并,这里产生了一个错误,由于前面发现本地编辑的helloWorld.c并未保存,后来重新编辑了一遍,但是没有commit。导致merge时产生错误。

为了解决以上错误,首先需要对本地更改进行commit,然后再merge

为了练习pull命令,首先得在github上创建一个新分支

 

然后在本地创建一个分支dev

然后再本地修改helloWorld.c,并提交

使用pull命令git pull <远程主机名> <远程分支名>:<本地分支名>:

使用转换到dev分支,并使用merge命令与远程分支进行合并

 

 

2. 康金梦:

 

Git的安装,账户的申请网上很多资源,在此不再赘述。讲解下如何上传项目等操作

 

 

[1]选定项目目录

 

[2]init指令将目录指定为git的仓库目录

 

[3]add/commit指令向远程添加文件

 

[4]本地库和远程库链接

 

上传成功!

 

[5]修改远程库的HelloWorld.java文件如图所示

 

[6]clone指令下载远程库到本地

 

[7]fetch/merge指令更新本地库

 

[8]pull指令,首先在远程新建分支,然后再本地新建分支

  

git pull <远程主机名> <远程分支名>:<本地分支名>

 

更新到本地

 

成功!

附录:在操作过程中对fetch和pull指令很困惑,在网上查找了下他们的不同,和大家一起学习,如下:

git fetch和git pull的区别

<1>git fetch:相当于是从远程获取最新版本到本地,不会自动合并(注:合并以后不是克隆文件改变)。

     $ git fetch origin master

     首先从远程的origin的master主分支下载最新的版本到origin/master分支上

     然后比较本地的master分支和origin/master分支的差别

     最后进行合并

   上述过程其实可以用以下更清晰的方式来进行:

    $ git fetch origin master:tmp

    $ git diff tmp

   $ git merge tmp

   Shell

<2>git pull:相当于是从远程获取最新版本并merge到本地

      git pull origin master

     Shell

    上述命令其实相当于git fetch 和 git merge
    在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并

在操作过程中学到很多知识,所以说动手加动脑事半功倍

3. 韩慧娟:GitHub初体验

(1)下载并安装github客户端,网址为:http://msysgit.github.io/。创建存放项目的文件夹,之后右击文件夹有git bash 选项(这里创建了githubTest文件夹)

(2)到github上注册自己的账号,网址为:https://github.com/

(3)注册成功后创建一个代码仓库,如图点击New  repository,进入下一界面

按照图中所示红线圈住的都需要设置,仓库名称为HelloWorld,要选择public,private是要付费的,最后点击Create  repository。

 

(4)进入新界面会有一个https地址,是为了方便上传下载代码

(5)打开先前的Git Bash 界面,输入如下内容

git config --global user.name "用户名"

git config --global user.email "邮箱"

查看目前设置可以用:git config --global user.name

红线圈住内容即为刚才创建的文件夹

(6)如果在创建仓库时第三步所示,没有选中Initialize this repository with a README这一选项,需要在后面的界面手动创建README(介绍项目),这一选项是为了帮助我们很快的克隆我们的项目到本地,如果是导入一个项目则不用勾

 (7)创建README,创建成功后,点击Clone repository ,将项目克隆到本地,或者在控制台输入git –clone ,clone命令的使用

使用$ ls 命令查看,可以看到HelloWorld已经拷贝到本地

(8)直接在HelloWorld文件夹下创建test.txt文件

(9)$  cd HelloWorld 进入文件夹

$  ls 查看文件夹下的文件

$  git status  可以显示未被检索到的文件

$  git add test.txt  使得git追踪此文件,即添加到仓库中 ,add命令的使用

$  git status  再次查看显示已经追踪到此文件

 

(10)Commit命令的使用,即提交文件到git

(11)Push命令,将本地改变推送到git上,更新git后会看到test.txt 文件上传成功

 

 

(12)fetch命令的使用,将远程仓库获取新文件;在远程创建新文件change

 

更新本地

(13)pull命令的使用,将改变更新到本地,可以看到本地与远程保持一致



4. 陈福朦:

Git是目前世界上最先进的分布式版本控制系统。和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

1.Git安装

msysgitWindows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即

可。安装完成后,在开始菜单⾥里找到Git->Git Bash”,蹦出⼀一个类似命令行窗口的东西,就说明Git安装成功!

2.githubhttps://github.com/这个网站提供Git仓库托管服务,只要注册一个GitHub账号,就可以免费获得Git远程仓库)上注册自己的账号,注册成功后就New  repository代码仓库名为HelloWorld.

 

 

3.创建SSH Key由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Git Bash,创建SSH Key

 

成功之后我们会看到后面生成了一个.ssh文件夹,然后我们进入这个文件夹,打开id.rsa.pub,复制里面的key,完成配置

 

打开浏览器,输入网址:www.github.com,然后输入自己的账号密码,进入。配置SSH Key

 

 

 4.SSH完成好之后,在C:\\Users\\lenovo\\software\\helloworld文件夹里写一个helloworld.c;

并把该目录初始化为本地git仓库(git init),并设置用户名和邮箱。

然后添加文件到Git仓库,分两步:

1)使用命令 git add(把文件添加到仓库) ,可反复多次使用,添加多个文件;

2)使用命令 git commit(把文件提交到仓库) ,完成。

 

(3)status(可以让我们时刻掌握仓库当前的状态)

(4)log(显示从最近到最远的提交日志)

 

5关联本地仓库和远程仓库(github.com地址为new repository 时生成的地址。

 

6push

 

7clone:

a.先在github.com上对HelloWorld.c进行些修改,并commit.

b.克隆git仓库在原来的HelloWorld文件夹下又建立了一个新的文件夹helloword,在新的仓库中cat helloworld.c 将看到修改过的版本:

 

c.fetch:

回到helloworld文件夹(cd ..)git fetch origin master把刚才更新的版本取回本地:

 

 

此时已产生分支,查看分支,并查看difference

使用merge将合并到分支,再查看本地的HelloWorld.c已经更新

 

8pull 需要在远程仓库先建立一个分支本地再建立一个分支dev修改helloworld.cgit pull <远程主机名> <远程分支名>:<本地分支名>checkout dev 分支merge origin/HelloWorld-patch-1此时冲突无法解决,需要手动修改;提交,切换回master:再合并到master;然后还可以再push到远程仓库origin master,不再赘述。

3.完成小组的“CanTool”项目的需求文档(使用Markdown写文档),尝试同组成员在各自PC上修改同一文档后,如何使用Git命令完成GitHub上的文档的更新,而不产生冲突。并验证GitHub上的文档确实是最新的文档。

 

 

詹睿:

康金梦:

[1]将远程的小组项目文件(cantoolapp的项目需求分析)克隆到本地

[2]修改文件之后,上传到远程

上传成功!已经可以看到最新版本。

 陈福朦:

[1]将远程文件cantoolapp的项目需求分析copy到本地,然后对文件的部分信息做了修改。

[2]上传到远程。

[3]上传成功之后,经验证已经是最新版本了。

以上是关于3组现代软件工程第二次作业的主要内容,如果未能解决你的问题,请参考以下文章

第二次作业:淘宝软件分析

第二次作业:软件分析之网易云音乐

第二次作业软件工程

软件工程第二次作业

软件工程第二次作业

构建之法现代软件工程(第二次)