一、实验目的

个人编程:每个开发人员电脑上有自己的代码。硬盘坏了,所有的数据和资料不能找回或是很难复原。安全意识强一些的公司会要求开发人员将代码隔一段时间放到一个集中的计算机上,以日期为文件夹进行备份,但这也会有问题如:如果备份不及时代码仍然会有部分丢失;过多的备份文件夹大部分内容是重复的会造成磁盘占用;无法做到多个人开发一个项目;无法对比两个版本的差异;代码改坏了,想回退也麻烦。

正规开发团队:使用源代码管理(SourceControl)工具,源代码管理工具主要作用:代码版本管理、多用户并发修改管理。常用工具:VSS(Visual SourceSafe,简称SourceSafe)、TFS(Team Foundation Server)、CVS、SVN等。前两者都是微软的产品,也是.net开发最主流的两种源代码管理工具,VSS适合于几个人的小团队,VSS只能进行源代码管理;TFS适合大团队,不仅包含源代码管理,还支持Bug管理、文档管理、持续构建等。

由此可见,掌握源代码管理工具对软件开发有重要作用,本文档目的就是对几个常用的源代码开发工具进行优缺点分析,帮助大家选择适合自己的开发工具。

二、实验环境

1.单人开发只需要一个本地库

2.多人开发时需要一个共享版本库

3. 使用环境无论是单人开发还是多人开发,客户端都可以使用命令行或者图形界面使用git

三、如何使用

3-1 登录github

github的官方网址:https://github.com ,如果没有账号,可以注册一个。
点击Sign in进入登录界面,输入账号和密码登入github。

3-2 创建repository(仓库)

点击右上角的头像旁边的小三角,展开后可以看到Your profile,点击进入后就能看到repository

切换到repository选项卡,可以看到很醒目的new按钮。点击,就可以开始创建自己的粮仓。

下面是创建仓库信息,只有名字是必填项,现在我创建了一个仓库叫:FIRST

创建成功的图片,如下:

可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。

git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库
git remote add origin git@github.com:wangjiax9/practice.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上

3-3安装GIT

[root@localhost ~]# yum -y install git

查看是否已安装成功
[root@localhost ~]# git

3-4配置GIT

首先在本地创建ssh key;

ssh-keygen -t rsa -C "your_email@youremail.com"

后面的 your_email@youremail.com 改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

两次回车回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。

git config --global user.name "your name"

git config --global user.email "your_email@youremail.com"

为了验证是否成功,在Git bash下输入:

[plain] view plain copy

ssh -T git@github.com

在服务器添加完公钥后报错

sign_and_send_pubkey: signing failed: agent refused operation

这个时候我们只要执行下

eval "$(ssh-agent -s)"

ssh-add

就可以了

进入要上传的仓库,右键git bash,添加远程地址:

[plain] view plain copy

git remote add origin git@github.com:yourName/yourRepo.git

后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。

3-5提交与上传

接下来在本地仓库里添加一些文件,比如README,

[plain] view plain copy

git add README

git commit -m "first commit"

上传到github:

[plain] view plain copy

git push origin master

git push命令会将本地仓库推送到远程服务器。

git pull命令则相反。

修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。

3-6gitgnore文件

.gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要.gitignore了。

[plain] view plain copy

bin

*.suo

obj

bin和obj是编译目录,里面都不是源代码,忽略;suo文件是vs2010的配置文件,不需要。这样你在git status的时候就只会看到源代码文件了,就可以放心的git add -A了。

3-7tag

我们可以创建一个tag来指向软件开发中的一个关键时期,比如版本号更新的时候可以建一个“v2.0”、“v3.1”之类的标签,这样在以后回顾的时候会比较方便。tag的使用很简单,主要操作有:查看tag、创建tag、验证tag以及共享tag。

四、git的工作流程

4-1在工作目录中添加、修改文件;

4-2将需要进行版本管理的文件放入暂存区域;

4-3将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

五、git的优势与劣势

5-1Git的优势:

(1)它有分布式的版本管理,对比集中式的版本管理系统来说不会出现中心服务器死机影响工作的情况,而可以先存储在本地,等服务器修改好还可以接着进行工作

(2)它是开源的,它强调个体,并且对于公共服务器压力不会太大,大小项目均可管理,拥有良好的分支机制,速度快、灵活,分支之间可以任意切换

(3)冲突解决,多人开发很容易就会出现冲突,可以先pull远程到本地,然后在本地合并一下分支,解决好冲突,在push到远程即可。

(4)离线工作,如果git服务器出现问题,也可以在本地进行切换分支的操作,等联网后再提交、合并等操作。

5-2Git的劣势:

(1)学习成本较高

(2)没有严格权限控制,会导致成员易犯错。

(3)兼容性不好,可能在上个版本的项目内容放到另一个git版本会出错

六、总结

通过这次实验我学会了如何使用GitHub这种源代码管理工具,了解了团队合作的便捷方式。

源代码管理工具-Github的更多相关文章

  1. 【GitHub】源代码管理工具初识

    软件工程综合实践第四次个人作业 作业要求:通过搜索资料和自学,了解源代码管理工具——GitHub 前言: GitHub,读音 /git·hʌb/ ,让社会化编程成为现实,其于2018年6月4日被微软收 ...

  2. 3. 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? (提示:搜索一下Microsoft TFS、GitHub、Trac、Bugzilla、Rationale,Apple XCode),请用一个实际的源代码管理工具来建立源代码仓库,并签入/签出代码。

    上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? ---------------答题者:徐潇瑞 (1)Microsoft TFS的优缺点: 优点:是对敏捷,msf,c ...

  3. 源代码管理工具(上)-SVN基本使用

    ------------------------------------------------------SVN简介和搭建 ------------------------------------- ...

  4. 源代码管理工具-GIT

    源代码管理工具-GIT ---- 一. 掌握 - git 概述 1. git 简介? 什么是git? git是一款开源的分布式版本控制工具在世界上所有的分布式版本控制工具中,git是最快.最简单.最流 ...

  5. iOS核心笔记—源代码管理工具-GIT

    源代码管理工具-GIT 一. git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快.最简单.最 ...

  6. 我发起了一个用 .Net 编写的 源代码管理工具 开源项目 SourceKit

    发起这个 项目 的 起因 是 GitHub . Github 的 使用技能 俨然已经成了 一项新技术 , 这不是 工具 的 本意 . 我用过的 源代码 管理工具 不多,  SVN 我觉得不错 . 常用 ...

  7. git源代码管理工具

    git是一款源代码管理工具 是分布式版本管理工具 分布式管理必须先在本地提交然后才能提交到服务器: svn集中式版本管理工具 集中式版本管理工具离开服务器就做不了版本管理: 初始化仓库 1.用git初 ...

  8. 源代码管理工具GIT

    01.GIT简介 svn是集中式的源代码管理工具,必须联网才能操作 git是分布式的. 有两中:一个是本地代码仓库,一个是远程代码仓库 分布式源代码管理工具 02.GIT - 本地代码仓库使用流程 1 ...

  9. 源代码管理工具之SVN

    源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面几块. SVN的使用环境 ...

  10. iOS源代码管理工具

    源代码管理工具简介 1.为什么会出现源代码管理工具? 为了解决在软件开发过程中,由源代码引发的各种蛋疼.繁琐的问题 2.源代码管理不当可能会引起的后果? 无法后悔:做错了一个操作后,不能回到之前的操作 ...

随机推荐

  1. win10家庭版vmwarework启动蓝屏

    最终升级到vmwarework16.2.5解决 据说17支持win11 再出问题直接上vm17了

  2. Github搜索优质项目方法

    [转载]:https://www.zhihu.com/question/20084458 搜索结果会显示非常多的开源项目,简直让你应接不暇,无从下手,很多小伙伴搜到这一步就放弃了,因为项目太多了,根本 ...

  3. Unity3d 动画转换中断

    翻译自https://blogs.unity3d.com/2016/07/13/wait-ive-changed-my-mind-state-machine-transition-interrupti ...

  4. Finance财务软件(权限管理专题)

    我们支持按模块对用户授权 如上所示,我们对用户test进行授权.test登录系统后将看不到未授权的菜单:

  5. Python学习笔记调试之取得反向跟踪的字符串

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  6. Python3 学习基础知识

    python是动态语言(对象属性可以动态改变,删除添加..),不是强类型语言,所以和java,c/c++等强类型静态语言有不一样地方需要注意. 一:基本数据类型 变量 counter = 1   # ...

  7. MySQL日常工具的安装

    安装PT工具 #安装依赖 yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-Digest-M ...

  8. JAVA笔记:double四舍五入并保留两位小数的方法

    1.只要输出结果 double x1 = 0.026; System.out.println(String.format("%.2f", x1)); 2.数据转换 //方案一: g ...

  9. 2022-3-18内部群每日三题-清辉PMP

    1.在评估项目活动现状的会议中,团队发现存在一些影响可交付成果的风险.项目经理应该怎么做? A.跟踪已发现的风险,识别和分析新风险,并评估整个项目的风险过程有效性 B.记录风险管理信息用于经验教训 C ...

  10. Linux 压测及监控工具Nmon

    一.带宽 1. 查看网卡的网络 ethtool:查看宽带大小,语法:ethtool 网卡名称,如:ethtool ens192: 2. 实时统计网卡宽带使用率nload A. 安装nload wget ...