该作业来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103

GitHub地址:https://github.com/GVictory/softwarEengineering

前言:

  Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。使用Git,能够毫不费力的恢复到你想要的版本状态,比如这个周的文档被改的乱七八糟的,就可以通过GIt回退到上个周的版本,而且使用GIt,可以共享自己的文件,代码,其他人可以使用这个Git仓库,进行查看,修改,提交。其他人只要更新就能看到变化,同通过GIt来开发项目,能够有效的提高项目效率,缩短开发进程。接下来通过一下的八个操作来熟悉GIt。

所用软件及版本:

  GIt Bash:2.15.1.2-64-bit.

  notepad++:7.5.8-64-bit.

  操作系统:window 10.

1.下载安装配置用户名和邮箱:

  可以通过该网站https://git-scm.com/downloads/下载git,然后进行安装。安装完成后,即可通过git bash来设置用户名和邮箱。用户名和邮箱地址是本地git客户端的一个变量,每次commit都会用用户名和邮箱纪录,github的contributions统计就是按邮箱来统计的。

  以下为配置说明:

  git config -global user.name "gmuk":配置用户用户名

  git config -global user.email "1427600836@qq.com":配置邮箱

  配置完成后,可通过git config user.name 和 git config user.email查看当前配置信息。

2. 创建工作目录并通过git init命令把这个目录变成Git可以管理的仓库:

  配置完用户名和邮箱后,就可以讲工作目录初始化成Git仓库,这里有两个方法创建工作目录,第一个是利用windows直接创建工作目录,第二种是通过git bash来创建工作目录,此处使用的第二种方法。初始化工作目录后,在该目录下会生成一个.git文件,这个就是git仓库,用来管理版本的,这个文件最好不要去动他,可能会造成git仓库的被破坏。

  以下为配置说明:

       pwd:查看当前工作目录

  cd /e:进入/e目录,即e盘

  mkdir testGit:在当前工作目录下创建名为testGit的文件夹

  cd /e/testGit:进入testGit的目录

  git init:初始化该文件夹为git仓库

  ls -a:查看该目录下的所有文件

3. 在工作目录下准备文本文件,建议下载Notepad++代替记事本:

  初始化git仓库后,就可以往git仓库放入文件,此处注意,需要放在被初始化的仓库的根目录,在本例子中即为testGit,在这里我们放入一个文本,为了防止出现乱码问题,这里我们建议使用NotePad++来编辑文本。

4. 组合用git addgit commit、git status 把文件提交到仓库:

  添加完文件后,使用git add和git commit提交文件,并用git status查看状态。

  以下为配置说明:

  git add:将修改添加到暂存区。

  git commit:将暂存区的改动添加到版本库中。

  git status:查看工作目录和暂存区的状态。

5. 练习提交三个或以上的版本:

  重复练习4,熟悉版本提交操作。

6. 组合使用git diff、git log、git reset命令进行版本管理与回退,观察文件变化:

  经过多次的git commit后,我们可以通过git log来查看版本状态,其中加上--pretty=oneline,就会在一行内显示单个版本信息。在这里要注意一下,git diff用来查看工作区和版本库内容的区别,当刚提交完后,git diff不会显示任何内容。

  以下为配置说明:

  git diff:查看工作区和版本库的区别。

  git log:查看版本日志。

  git reset:版本回退。

7. 将Git仓库托管到GitHub网站上:

  当需要将Git仓库交由第三方来进行版本管理时,可以将Git仓库托管到GitHub网站上,GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。要将Git仓库托管到需要获取SSH Keys,如果用户目录里没有SSH Keys,就需要创建一个,然后复制该目录下的id_rsa.pub,然后在gitHub上添加本地仓库的SSH Keys,至此,就完成了git仓库的托管。

  以下为配置说明:

  ssh-keygen -t ras -C "1427600836@qq.com":创建一个SSH keys

  git remote add origin git@github.com:GVictory/softwarEengineering.git:将本地仓库托管到指定远程仓库。

8. 把本地仓库的内容推送到GitHub仓库:

  将Git仓库托管到GitHub后,即可将本地的文件上传到远程仓库,这个就可以进行同步。在这里需要注意,当远程仓库第一次使用有其他本地仓库没有的文件时,需要将远程仓库的文件先更新到本地仓库,然后再一起和本地仓库的文件提交到GitHub仓库。步骤如下:先git getch origin,再git merge origin/master,当出现fatal时,再git pull origin master --allow-umrelated-histories,这样即实现了远程仓库和本地仓库的文件同步。

  以下为配置说明:

  git push -u origin master:将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push

  git fetch origin: 从远程获取最新版本到本地,不会merge

  git merge origin/master:将远端master分支的代码merge进本地分支

  git pull origin master --allow-umrelated-histories:本地分支推送到远程分支

构建之法--初识Git的更多相关文章

  1. 【软件工程】《构建之法》 & Git+ & CI/CD

    <构建之法> & Git+ & CI/CD 个人阅读作业#2 项目 内容 本作业所属课程 2020春季软件工程(罗杰 任健) 本作业要求 个人阅读作业#2 我的课程目标 具 ...

  2. 201871010109-胡欢欢-实验一-软件工程的准备(初识github及《现代软件工程-构建之法》)

    项目 内容 课程班级博客链接 2021年春软件工程课程班(2018级计算机科学与技术) 这个作业要求链接链接 实验一软件工程准备 我的课程学习目标 了解github的基本使用,学习markdown编辑 ...

  3. [第二届构建之法论坛] 预培训文档(C++版)

    本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的C++版本],需要实验者有一部分C++基础. 目录 Part0.背景 Part1.配置环境 Part2.克隆项目 Part ...

  4. [第二届构建之法论坛] 预培训文档(Java版)

    本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的Java版本],需要实验者有一部分Java基础. 目录 Part0.背景 Part1.配置环境 配置JDK Linux 平 ...

  5. 《构建之法》课程进度之Github、Travis等工具融入篇

    <构建之法>里有一个16周的软件工程课程进度设计.本文在该基本设计的基础上,围绕github.com(源码管理).travis-ci.org(持续集成).单元测试工具.日志工具.少数实用U ...

  6. 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结

    [第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...

  7. [BUAA软工]第一次博客作业---阅读《构建之法》

    [BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...

  8. 【构建之法教学项目】一个简单的基于C#的电子商务系统演练场景的代码示例

    电子商务平台,是一个历史悠久而又充满挑战的行业,他和社交一起成为中国互联网市场的两极.电子商务系统是一个非常复杂的系统,他实现了人与物.人与人的链接,同时也需要大量的技术来支撑,实现系统的高可用.这些 ...

  9. 《构建之法》——GitHub和Visual Studio的基础使用

    git地址 https://github.com/microwangwei git用户名 microwangwei 学号后五位 62214 博客地址 https://www.cnblogs.com/w ...

随机推荐

  1. Python3编写网络爬虫04-爬取猫眼电影排行实例

    利用requests库和正则表达式 抓取猫眼电影TOP100 (requests比urllib使用更方便,由于没有学习HTML系统解析库 选用re) 1.目标 抓取电影名称 时间 评分 图片等 url ...

  2. File类_常见的方法(获取目录中指定规则的内容)_listFiles

    import java.io.File; public class ListDemo { public static void main(String[] args) { ListDemo(); } ...

  3. Semaphore实现的生产者消费者程序

    Semaphore:Semaphores are often used to restrict the number of threads than can access some (physical ...

  4. [Noi2002]Savage(欧几里得拓展)

    题意:在一个岛上,有n个野人.这些人开始住在c号洞穴,每一年走p个洞,而且他的生命有L年.问如果岛上的洞穴为一个圈,那么这个圈至少有多少个,才能使他们每年都不在同一个洞穴里. 分析:先假设一种简单的情 ...

  5. SSM框架之整合(Maven实例)

    有不少朋友在maven中因为pom文件依赖的事导致报错 今天我这个快速搭建ssm框架,确保在jdk7或者jdk8的环境,tomcat没什么要求.但如果要用jdk8的话,最好用run as中的serve ...

  6. 提示文件过大无法复制到U盘怎么解决

    1.U盘作为一个便携的移动存储工具,在我们的生活中扮演重要的角色,但 是我们经常会遇到在复制文件到U盘中的时候,U盘明显有很大的空间,却 提示文件过大无法复制,今天,我教大家一步解决这个问题!! 2. ...

  7. 错误:java.io.FileNotFoundException: /storage/emulated/0/Documents/eclipse-inst-win64.exe

    在Android服务的最佳实例中:https://www.cnblogs.com/hh8888-log/p/10300972.html,在最后运行的时候,点击Start Download按钮总是会报一 ...

  8. ESP8266开发综合篇(SDK开发-视频教程总揽)

    为了解决基础教程简单入门但不实用,项目方案非常实用但比较难的问题,开始推出8266开发综合篇 综合篇涉及到AT,LUA,SDK,LUA(sdk)开发,LUA和SDK开发会同步进行,后期再整理AT指令的 ...

  9. tab键设置为空4格和自动缩进

    .打开vim配置文件~@vim etc/vim/vimrc 二 .设置tab和自动缩进即:添加如下内容 "set tab by charly!" softtabstop= (注意等 ...

  10. Luogu2469 SDOI2010 星际竞速 费用流

    传送门 发现它的本质是求一个费用最小的路径覆盖 最小路径覆盖是网络流23题中的一个比较典型的模型 所以考虑相似的建边 因为每一个点要恰好经过一次,是一个有上下界的网络流,故拆点,星球\(i\)拆成\( ...