软件工程第二次作业——git的使用

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

 

邓杰:

陈宗雷:

(1)在之前已经建立了自己的github账号,账号名称为zongleichen。

(2)以合作者身份加入到组长建立的项目:

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

邓杰:

在github官网上创建了远程库dengjiejie/work之后,接着我在本地电脑上,是用命令行git clone [email protected]:dengjiejie/work.git,将远程库克隆到本地电脑上,如下图所示:

接着在本地上创建了read.txt文件,内容为add TXT。接着将其上传至远程库,在git网站上将其内容进行修改,接着将其pull到本地电脑上,命令行操作如下:

接着将上次作业中的holleworld项目拷贝至本地工作区work中,接着使用add,和commit及push命令行进行上传,

如上所示,在将项目克隆,对read.txt.文件的操作,及最后将helloworld项目上传的整个过程中,将add/commit/push/pull/clone等命令的全部执行了一次,并且实际效果和预想效果圈圈相同。

在上述的过程中,通过对项目的签入签出,成功的完成了对版本的控制,通过read.txt文件,在本地上创建和上传,在远程库中同意了版本(多增加了read.txt),接着在网站上对其内容直接进行修改,相当于其他小组成员在修改后将其上传,接着在本地电脑上更新项目,read.txt的版本也就随之更新。下图中,第一行add txt是在本地创建时,加入的内容,第二行内容则是在网站上直接对其增加的内容,在pull到本地之后,本地之前的版本也被更新。

陈宗雷:

(1)在eclipse上编写helloword代码:

(2) git的add/commit/push/pull/fetch/clone基本命令的使用过程如下:

首先为该项目建立了一个仓库:

基本命令的使用:

在命令的使用过程中对fetch理解的还不够透彻,它和pull功能类似又有一定的差别,git fetch 会从远程上获取最新的的内容到本地上,但不会自动的merge。我们可以比较两者的差别,在实验过程中还建立了一个新的分支,合并需要输入新的命令。而pull命令不仅获得新的版本,而且与本地的进行合并,所以我们可以看到,pull相当于fetch和merge两步。fetch更具有可控性,可以自主选择是否进行合并。

范世良:

Step1:Git init

先在本地初始化git环境,并将helloworld程序放入本地git工作区中。运行结果如下图:

Step2:Git add

实用git add命令添加到git缓存区域中。并调用git status查看当前状态。

Step3:Git commit

使用git commit命令将保存在git缓存区的修改提交到master分支上,保存到本地git仓库中。

这时候发现commit完成之后,调用git status缓存区中数据已经消失。

Step4:git remote

接下来将github上的远程仓库和本地仓库进行连接。首先我们需要产生ssh key。

ssh key产生完成之后,我们需要将其添加到github的账户中,完成加密访问。

Key值通过本地文件id_rsa文件获取。添加成功后结果如下图。理论上我们已经可以本地通过ssh连接远端git仓库了。

接下来我们需要在本地git添加远程连接。我们采用git remote add添加远程连接。添加完成后,实用git remote查看已经添加远程连接信息。如果需要详细信息,可以使用git remote –v来查看更详细信息。

理论上,我们完成了上述的步骤,已经可以和远程仓库进行数据通信了。但是git提出了下面的问题。

看到这个问题之后,我第一时间去查看了ssh config,

发现配置中显示IdentityFile=~/.ssh/github_rsa发现是因为使用了github的shell,配置的时候ssh key默认访问的是github_rsa而不是git默认产生的id_rsa。解决方案应该有很多,我直接去修改了ssh_config文件,这里应该注意不要使用window自带的文本文档修改,建议使用notepad修改。原因是文本文档有时会在文件中添加字符。

修改完成之后,我们再来尝试一下是否可以完成push。

查看问题之后,发现因为github仓库中创建了readme.md所以需要先从远端仓库pull下来该文件。

这里的git push –u 是为了让本地和远端仓库进行关联。

Step5:git clone

到这一步,我重现创建了一个文件夹,从github上clone小组的项目。Git clone命令非常简单。

Step6:git fetch

这一步还在上述clone的文件夹中进行。我在github上手动修改了readme.md文件,来测试git fetch命令。

从图可以看出,fetch跟pull最大的区别是fetch下来的文件不进行自动merge,需要手动比较大小。在实际开发过程中,个人更偏好这个命令,因为可以自动查看需要merge的内容,更可控。图中git diff使用的没有效果,变重新测试了一下。

研究了一下,发现git diff更多的使用在比较分支的不同上。像这里,我比较了远端master和本地master分支的不同,显示是readme.md文件有了修改。

李艳薇

第一步:初始化git仓库。

首先尽到存放项目的文件夹,使用git init命令将该文件夹初始化为git文件夹。

这时文件夹中会多一个.git文件夹,里面存放的是git的配置文件。

第二步:将添加的文件存放到缓存区域中,以待提交到master分支上

使用git add *将文件添加到缓存区域中,使用git status发现缓存区域发生了变化,增加了文件。

第三步:将缓存区域中的文件提交到master分支上。

上一步我们已经将需要修改的项目文件提交到了git缓存区域中,但是没有真正的对master分支产生变化。这里我们需要对master进行修改。

通过使用git commit发现git缓存区域已经没有修改的文档了。

第四步:连接远端仓库

a.   产生ssh key

使用命令产生ssh key,便于接下来和github进行连接

b.  github中添加ssh key

将刚才产生的ssh key添加到github账户中,便可以使用ssh与github链接

c.   本地配置远端服务器地址

第四步:将项目上传到远端仓库

这里使用git push –u指令往远端仓库提交代码,-u指令是为了将本地仓库和远端仓库关联。

成功将代码提交到远端服务器。

第五步:将新修改的文件从远端仓库取出。

a.   Git pull:

手动的将github仓库中的readme文件进行了修改。并使用git pull 将该文件取回本地。

发现指令执行完成后,自动的对本地文件进行了merge修改。

b.  Git fetch + git merge

再次手动的修改github仓库中的readme文件,使用git fetch指令,并用git diff查看区别。

从执行结果可以看出,git fetch没有对本地文件进行修改,由此我们应该使用git merge将远端的修改添加到本地来。

成功修改本地文件。

 

第五步:克隆远端仓库

创建一个新的文件夹,使用clone将小组项目克隆下来。

项目成功克隆下来。

 

王博:

第一步:进入项目文件 右键Git Bash Here 命令进入git控制器命令行界面

第二步:配置账户基本信息(用户名和邮箱)

git config --global user.name “Wangbo”

git config --global uesr.email “[email protected]”

第三步:初始化版本库,即生成.get配置目录(git版本控制目录)

第四步:添加项目文件到git暂存区

git add helloworld.class 添加单个文件到暂存区

git add .(*) 添加当前目录下所有文件到git暂存区

第五部:将git暂存区(执行add操作后暂存区的最新状态下的文件)提交到git仓库

git commt -m “version 1.0.0 2016-9-18” 执行提交操作,并创建本地版本并为之命名

第六步:查看版本创建结果

git log 查看历史版本

第七步:版本回退

git reset --hard aa28f72(commit序列号),可将项目退回到指定版本

第八步:GitHub 远程连接(SSH)相关设置

1.创建ssh key

ssh-keygen -t rsa -C “[email protected]”


 
此时可生成一对公钥和私钥加密文件

 


2.在GitHub网站上添加id_rsa.pub
将公钥文件内文本信息粘贴至Key内容即可:


第九步:添加git远程仓库
git remote add origin [email protected]:wangbo999/wangbo
git remote 查看远程仓库

 


第十步:push推送本地项目到GitHub
git push origin master
 

第十一步:pull 拉取GitHub上的项目到本地

Git pull origin master(每一次push之前必须pull)

 
第十二步:查看拉取的项目与本地项目异同,与组员商议修改冲突代码
git status
 
第十三步:修改代码后重新git add修改后的文件到暂存区(冲突文件较多时最好分次添加)

第十四步:git commit 重新提交项目文件到仓库

第十五不:git push origin master 及完成一次个人代码的git推送到GitHub

 

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

邓杰:

陈宗雷:

(1)使用了小书匠markdown编辑器对需求文档进行了编写:

(2)在自己的PC上用pull获得需求文档,进行修改和提交,实现github上的更新。

范世良:

首先使用notepad++对最新项目中的requirement.md进行修改。

修改完成后,将修改完成的文件git add,git commit后push到远端仓库中。

查看github仓库信息,显示成功提交修改。

李艳薇:

首先从远端仓库中取出最新项目代码。

成功取出最新代码,对requirement文件进行修改。

对文件完成修改后,在git中提交代码。

查看github上项目信息,发现完成了更改。

时间: 2024-08-06 18:54:11

软件工程第二次作业——git的使用的相关文章

软件工程 第二周作业

##软件工程第二周作业 提出问题 1. 一般来说,想要自己的程序跑得又快又好,就要减少函数的反复调用,但有所得则必有所失,效能提高就有可能伴随着程序的稳定性的降低,这两者应该如何权衡呢? 2. 关于5.3.5 老板驱动的流程,这种开发流程模式存在着一些问题,那要如何解决这些问题呢? 这种模式当然也有它的问题. 领导对许多技术细节是外行. 领导未必懂得软件项目的管理,领导的权威影响了自由的交流和创造. 领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队. 领导的精力有限,领

2017秋-软件工程第二次作业

本周因为个人缘故,参加社团活动作业没能及时完成.对此我表示,做过就不后悔,至少我觉得生活是丰富多彩的,错过的时间就应该努力赶上!夜深人静的时候总是可以让人反省自己.本次作业我只实现了第一个功能和第二个功能的部分.对此我表示很不满,但是时间紧迫.个人能力有限,以至于自己没能让自己的软件看起来完美. 第二次作业的内容非常有趣,这也是我一直想做的一件事情,统计一篇文章里的字词.我知道自己的编程能力较差.距离完成提交时间很近,自己手写全部是不能及时按照约定提交的,于是就尝试借鉴前人的代码.第一晚的努力各

现代软件工程 第二章 作业 2 学习git用法与心得——孙雪莹

题目:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 参考:廖雪峰的官方网站——Git教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 第一步:我用的是Windows系统,所以首先安装msysgit.安装完成后,在开始菜单找到"Git"->&quo

软件工程第二次作业--师兄采访

我采访的是李权师兄,虽然之前也有人采访过他,问题都是同样的问题,不过我挖掘出了和其他同学不一样的信息. 问题:    师兄,当时你们做的项目是什么,有多少用户, 现在还有人用吗? 李权师兄: 当时我们的项目名是约跑APP,当时用户有8人.在用户的手机上测试通过,能让用户找到一起跑步的小伙伴.现在已经没有人用了. 追问:该app给用户提供了什么样的服务? 李权师兄:app能提供给用户认识新朋友的平台.通过app,用户可以约人一起跑步. 第二个问题:师兄这个项目能否给我们团队继续开发,源代码还有么?

软件工程第二次作业(王伟东)

一周的时光转瞬即逝,第二周的作业也悄悄地开始了.杨老师的一言一行都深深地刻在我的心里,"不迟到"是做人做事的根本,努力则是成就人生的基石.正如<道德经>中所言"天地不仁,视万物为刍狗",上天对待世间万物是公平的,从来都是不偏不倚,只有勤奋好学的人才会得到垂青和奖赏. ㈠词频统计的四个功能 ①首先控制台输入内容到文件中,再对文件进行词频统计: ②命令行输入英文作品名,然后统计作品词频: ③命令行输入英文作品文件的目录名,再批量统计: ④从控制台读入英文单篇

软件工程第二次作业 词频统计

1.项目名称:词频统计 2.代码地址:https://coding.net/u/songyuu/p/python_wf/git 3.代码如下: 1 import os 2 import re 3 import collections 4 #print(os.getcwd()) #显示wf.py路径 5 #print(os.listdir())#显示目录下的文件 6 file_name=input("wf ") 7 if not os.path.isfile(file_name+'.tx

软件工程第二次作业—结对编程

一. 作业要求 两人组成一队,进行结对编程. 从第一次软件工程作业中选出一人的作业作为这次作业的基础. 设计一个图形界面(GUI)的四则运算应用程序,可以是PC桌面的图形界面程序.网页程序或者手机程序. 设计的应用程序可以完成加法.减法.乘法.除法运算. 应用程序可以完成真分数的四则运算. 例如:1/2 + 1/3 = 5/6 例如:1/5 + 3/10 = 1/2(而不是5/10) 例如:1'1/3 - 2/3 = 2/3 (是1'1/3而不是4/3,注意:" ' "为1'1/3整数

2017年秋季学期软件工程第二次作业

源代码链接:https://github.com/FredaCao/homework1.git 一. PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 Estimate 估计这个任务需要多少时间 255 260 Development 开发 150 165 Analysis 需求分析 10 暂无 Design Spec 生成设计文档 10 暂无 Design Review 设计复审

软件工程——第二次作业(2)

施工中-- 作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 项目要求是编写出一个拥有"词频统计"功能的小程序,作为一个小程序,若只是实现基本的词频统计功能,其实并不是很难.但是,如果再附加一些需求和功能的话就会让我感到有点难度了,更何况为了以后课程的要求,我选择使用Visual Studio 2015编译器和C#语言这两种从未学过的工具,在4-5天之内共10个小时左右(预计,但是实际上确实是花了更多时间