【软件项目管理】关于Github

Git是一个分布式的版本控制系统,最初由Linus Torvald编写,用作Linux内核代码的管理。作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。

在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

GitHub可以托管各种git库,并提供一个web界面,GitHub的独特卖点在于从另外一个项目进行分支的简易性。有人将GitHub称为代码玩家的MySpace。

GitHub 使用 git 分布式版本控制系统,而最初Linus Torvalds针对的是 Linux 平台,因此 git 并不像 Windows。

GitHub for Windows 是一个 Metro 风格应用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。

(出处:百度百科)

我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。

怎么使用?

1.注册账户以及创建仓库(简单)

2.安装客户端msysgi天(msysgit只是提供了git的核心功能,而且是基于命令行的。如果想要图形界面的话只要在msysgit的基础上安装TortoiseGit即可)

装完msysgit后右键鼠标会多出一些选项来,在本地仓库里右键选择Git Init Here,会多出来一个.git文件夹,这就表示本地git创建成功。右键Git Bash进入git命令行,为了把本地的仓库传到github,还需要配置ssh key。

3.配置Git

首先在本地创建ssh key;

$ ssh-keygen -t rsa -C "[email protected].com"

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

回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。为了验证是否成功,在git bash下输入:

$ ssh -T [email protected]

如果是第一次的会提示是否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 "[email protected]"

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

$ git remote add origin [email protected]:yourName/yourRepo.git

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

4.提交、上传

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

$ git add README $ git commit -m "first commit" 上传到github:

$ git push origin master

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

git pull命令则相反。

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

5.gitignore文件

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

bin *.suo obj

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

6.tag

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

(出处:wuyuan‘s blog)

时间: 2024-11-03 03:34:12

【软件项目管理】关于Github的相关文章

软件项目管理-构建之法-四周总结

写在前面 课程名:软件项目管理  授课人:东北师范大学 杨贵福( http://www.cnblogs.com/younggift/) 教材:<构建之法 - 现代软件工程> 作者:邹欣老师 (博客:http://www.cnblogs.com/xinz/) 周筠老师(邮电出版社的编辑,策划了构建之法,并参与提供领跑衫) 笔者作为东北师范大学计算机科学与信息技术学院研二学生,参与了软件项目管理这门课,在经过了四周的课程之后,获得了跑衫一件,深感荣幸.                       

软件项目管理第四周作业

第四周软件项目管理作业 1.Fantacy小组站立会议 周五上课之后3:00到3:30,我们4位开了站立会议,主要内容: 首先询问前一周大家所学和所做的内容,之后确定各位本周的任务,准备alpha版本的发布. 杨若鹏:词频统计核心代码实现与下载模块实现 郭又铭:上传模块实现 何美琪:参考java书籍,练习编写代码 藏润强:学习了java的内容,参与了词频统计算法的编写 import java.util.ArrayList;import java.util.Collections;import j

浅谈软件项目管理

初步接触<软件工程>这门专业课,在我看来:软件工程是一个极具挑战性的项目,在约定的时间内,整个项目小组可以在满足用户需求与软件基本规范的情况下,开发出稳定可靠的软件.但是,在软件开发的过程中,往往有许多不可规避的风险与未知的情况,例如:软件不能按时交付,软件的成本明显超过预期,软件未能达到用户的需求等等,"如果所用的时间是预计时间的两倍以上或费用超出预算两倍以上的项目为失控项目",为了有效规避项目在开发过程中的风险,所以笼统来说,项目管理指的是:根据特定的规范,在预算的范围

关于软件项目管理的心得体会之一

目的 软件项目管理是一项涉及面较广,但是非常必要的一项技能.相较于软件开发中的其他专业技能, 又更加依赖于实践和阅历.这里想跟各位同仁分享一下自己在过往项目中的心得体会,结合些许耳熟能详的理论,起到抛砖引玉的作用. 局限性 项目管理既然是一门实践科学,所以这里跟大家分享之前,还是要说明局限性.因为我之前是在一家提供软件服务的传统软件公司工作, 所以很多项目的经验都来源于作为乙方的外包项目,同时,大部分项目都是移动相关领域.目前我在一家国内的互联网公司,从事的电商相关的应用项目. 开篇 想跟大家分

软件项目管理

从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而成本.人员.进度.质量.风险等进行分析和管理的活动:与其他工程项目相比,软件项目具有以下显著的特征: (1)软件产品的不可见性: (2)项目的高度不确定性: (3)软件过程的多变化性: (4)软件人员的高流动性: 有效的软件项目管理集中于4个方面:人员(People).产品(Product).过程(Process)和项目(Project),简称为项目管理的“4p”. 软件项目的生命周期包括项目启动.项目规划.项目实

软件工程概论第三章--软件项目管理

本章介绍了软件项目管理的相关知识,从软件项目管理概述.人员组织与管理.项目沟通管理.软件项目规划.软件风险管理及软件配置管理这几个方面展开讲述,详细的介绍了软件项目实行过程中的管理知识. 软件项目管理概述主要讲了:1.软件项目的特征,即软件产品的不可见性.项目的高度不确定性.软件过程的多变化性.软件人员的高流动性等.2.软件项目管理的“4P”,人员.产品.过程.项目.3.软件项目的管理活动,项目启动.项目规划.项目实施.项目收尾.概论讲述了软件项目管理的一些活动和重要的因素等. 人员组织与管理主

软件项目管理作业(一)

项目的完成需要的资源是多种多样的,软件项目管理(Software Project Management,SPM)的目的是管理软件项目,使其能有序.高效的进行,最终成功的完成. 根据这样的逻辑,我在前一段时间所完成的一个大作业也可以作为一个项目来进行规划. 项目名称:银行系统设计 项目要求:完成一个模拟的银行系统,要求实现对储户的管理,包括储户存钱,储户取钱,查询存取记录,储户转账 要求实现新储户开户处理,实现两种不同的登陆操作 使用的资源:一台电脑,时间若干 结果与预期目标的比较:成功完成了项目

atitit. it软件项目管理---自己的员工,雇佣军、援军,混合的员工 杂牌 人员管理架构

atitit. it软件项目管理---自己的员工,雇佣军.援军,混合的员工 杂牌 人员管理架构 1. 企业的正规军,雇佣军,杂牌划分 1 1.1. 企业的员工基本是雇佣而来 1 1.2. 全职员工与兼职员工  与 合作公司员工 1 2. 雇佣军的优点 2 2.1. 在暗杀.破坏.小规模冲突上雇佣军强于员工 2 2.2. ,雇佣军更加注重个人的锤炼,单兵素质要强于员工 2 2.3. 如果及时付酬以严明纪律,事实证明雇佣军还是有战斗力的 2 2.4. 极大的减少政治风险 2 2.5. 极大的减少自己

软件项目管理(CMMI成熟度)实践——之决策分析(3)

续<软件项目管理(CMMI成熟度)实践--之决策分析(1)>.<软件项目管理(CMMI成熟度)实践--之决策分析(2)>,后记. 关于前端开发技术架构决策分析的活动已经结束了,按理说不应该这么快来写总结,但是,的确发生了很大的变故.因此在此写写后续发生的事情吧. 我很高兴,项目组开发人员在通过长时间热烈的讨论.研究后,终于通过决策分析方法选择引入JavaEE技术架构,并把Cordys产品放在后台.我感觉到我的压力骤减,主要原因如下: (1)受Cordys产品限制.制约,大幅减少:

在软件项目管理中如何把时间估算的靠近真实值?

我们在开发一个软件项目的时候,大老板或者客户经常需要我们给他们某个项目估算的工时,我们一般的做法就是把当前的项目按照WBS进行自上而下,自顶而底,自外而里的进行分解:然后根据一个详细的可个人实施的任务作为一个最低的估算时间的单元,这个时候问题,就来了,如何让这个最低的估算时间的单元逼近它的实际真实值,同时也不让员工太闲或者太累?这里给大家介绍一种我们以前用过的乐观估计,悲观估计和期望估计的算法,供大家参考. 任务最终的估算时间=(乐观估计+悲观估计+期望估计*4)/ 6(中庸), (1)乐观估计