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

 

邓杰:

陈宗雷:

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

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

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

邓杰:

在github官网上创建了远程库dengjiejie/work之后,接着我在本地电脑上,是用命令行git clone git@github.com: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 “1013838999@qq.com”

第三步:初始化版本库,即生成.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 “1013838999@qq.com”


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

 


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


第九步:添加git远程仓库
git remote add origin git@github.com: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上项目信息,发现完成了更改。

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

  1. 第二次作业(Git and Github)

       第二次作业(Git and Github) 1.Github项目地址: https://github.com/YanSiJu/JavaWebProject.git 具体介绍详见READ.md 2 ...

  2. 集大1513 & 1514班 软件工程第二次作业评分与点评

    谢谢按时完成作业的同学. 请大家在今后的作业中多思考,认真完成并注意作业的原创性. 学号 作业标题 作业地址 提交日期 分数 201521121087 微信APP简要分析 http://www.cnb ...

  3. 软件工程 - 第二十次作业 Alpha 事后诸葛亮(团队)

    Alpha 事后诸葛亮(团队) 组长本次作业链接:https://www.cnblogs.com/dawnduck/p/10056026.html 现代软件工程 项目Postmortem 设想和目标 ...

  4. 第二次作业-git的基本操作

     作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 一.修改用户名和邮箱地址: (1)配置用户名命令:$git ...

  5. 17秋 软件工程 第二次作业 sudoku

    2017年秋季 软件工程 作业2:个人项目 sudoku Github Project Github Project at Wasdns/sudoku. PSP Table PSP2.1 Person ...

  6. 软件工程第二次作业——Java学习路线

    我的第二次软工作业 过去我对自己所学和想学都很迷茫,以至于学得总是一知半解,但现在我想主攻Java方向,并坚定不移地走下去(之后拓展其他方面就是以后的事情了).之所以想主攻Java方向是因为Java本 ...

  7. 高级软件工程第二次作业:随机生成N个不重复的已解答完毕的数独棋盘

    #include <stdio.h> #include "SuduCheck.h" ][],int i,int j,int k) //判断是否可以将第i行.第j列的数设 ...

  8. 软件工程第二次作业(One who wants to wear the crown, Bears the crown.)

    小镓自述Eclipse使用及自动单元测试技术 因为本人对JAVA有一些兴趣,所以就决定用Eclipse来完成这次作业,从安装Eclipse到学习写代码,最后学会用Junit来进行单元测试.这段过程给我 ...

  9. 【软件工程第二次作业】个人项目:WordCountPy

    一.GitHub 地址 项目 GitHub 地址为:https://github.com/bytemo/WordCountTool 二.PSP表格 PSP2.1 Personal Software P ...

随机推荐

  1. 【Java并发编程实战】-----“J.U.C”:CLH队列锁

    在前面介绍的几篇博客中总是提到CLH队列,在AQS中CLH队列是维护一组线程的严格按照FIFO的队列.他能够确保无饥饿,严格的先来先服务的公平性.下图是CLH队列节点的示意图: 在CLH队列的节点QN ...

  2. Html5 直接插入排序

    直接插入排序算法(Straight Insertion Sort),是排序算法中简单的一种算法,基本思想如下: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表.即:先将序列的第 ...

  3. Win10 字体模糊解决(DPI缩放禁用),设置默认输入法英文

    电脑坏了 , 换了新电脑, 但是新电脑,死活不能装win7, 装都不能装!!!郁闷了 好多地方字体模糊了,百般设置都不好看, 后来远程桌面到win2008server, 发现,在远程桌面里面居然很清晰 ...

  4. openresty 前端开发入门六之调试篇

    大多数情况下,调试信息,都可以通过ngx.say打印出来,但是有的时候,我们希望打印调试日志,不影响到返回数据,所以系统打印到其它地方,比如日志文件,或者控制台 这里主要用到一个方法就是ngx.log ...

  5. PHP_VERSION_ID是如何定义的

    PHP_VERSION_ID是一个整数,表示当前PHP的版本,从php5.2.7版本开始使用的,比如50207表示5.2.7.和PHP版本相关的宏定义在文件 phpsrcdir/main/php_ve ...

  6. C#定时任务组件之FluentScheduler

    FluentScheduler是.NET开源处理定时任务组件 1.任务的创建注册 public static void TaskActionByMinutes(Action action, int c ...

  7. ECS Linux 服务器解除ssh登陆后被锁定或暂停输入输出的终端

    在使用SSH终端(如Xshell)登陆时,若不慎点击 Ctrl + S  按键,会导致终端很像被锁定,输入和输出都无响应. 这是由于操作系统的终端收到指令 Ctrl + S 后,会暂停终端输入输出的刷 ...

  8. Redis数据结构详解(一)

    前言 Redis和Memcached最大的区别,Redis 除啦支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据记录.Redis还支持对这些数据类型做更多的服务端操作 ...

  9. Java资源大全中文版(Awesome最新版)

    Awesome系列的Java资源整理.awesome-java 就是akullpp发起维护的Java资源列表,内容包括:构建工具.数据库.框架.模板.安全.代码分析.日志.第三方库.书籍.Java 站 ...

  10. Android数据加密之Rsa加密

    前言: 最近无意中和同事交流数据安全传输的问题,想起自己曾经使用过的Rsa非对称加密算法,闲下来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...