如何看待源代码

源代码是公司的重要资产

对应软件公司来说,源代码相当于固定资产>人才

所以源代码管理对于公司来说是最重要的事物之一

一、管理源代码的工具

SVN:集中式的源代码管理工具,通常必须连到公司的服务器上才能正常工作

(提交代码、查看代码的历史记录、查看代码分支)

在公司中开发项目时,每天至少提交一次代码

第二天上班时,写代码之前,先获取最新源代码

如果出差到外地,则无法直接从公司内部的SVN服务器上获取代码、提交等

(此时,VPN可能是一个方案)

总之必须连到SVN服务器上才能干活

GIT:分布式的源代码管理工具,没有中心服务器的概念。

每个开发人员都可以获得完整的代码库。即使不连网,也能进行几乎所有的操作。

使用GIt时,因为代码库在本地,所有可以很快地提交,不会受网速影响。

提交的频率就可大大提高----------代码的历史记录更加详细(当需要查看或恢复到某一个时间点时,会更加准确灵活)

团队合作开发

源代码管理工具=>都能解决团队合作开发的问题。

GIT/SVN 都是网络程序,都是多用户的系统

版本管理

在开发过程中 ,会同时并存同一个产品的多个“版本”

(下一代产品)开发版(分支)

新特性试验版(分支)

Bug修复版(分支)

正式版 (分支)

不同的版本有自己的历史记录、有自己的研发团队(多人合作)

开源项目

使用Git可以管理或参与开源项目。Git本身就是为开源项目设计的。

互联网上很多源代码管理库(云计算和源代码管理的结合)

趋势:源代码管理将成为一种公共服务

软件开发能力

通过CMMI级别可以判断一个公司的软件开发能力。

CMMI能力成熟度模型,一共定义了五个级别

级别越高,表明软件开发能力越强,越成熟。

5级很难达到

3级以上意味着公司的管理非常规范

质量标准  ISO  2000
国际标准  规定了软件质量形成和保证体系

无论是CMMI还是ISO对于源代码管理都由明确要求-----软件公司必须使用专业的工具管理源代码资产。

二、GIT命令

1.git init       初始化一个git仓库,会在当前文件夹中生成一个.git隐藏文件夹

在这个.git
隐藏文件夹中,保存是版本库的所有数据。

2.git add          文件名/.
将已修改的文件放入暂存区

3.git commit -m 消息   将暂存区的文件提交到代码库

4.git log       查看提交记录
, ------ oneline
查看简化的记录(显示在一行中)

5.git status     查看工作区(当前文件夹)的状态

(哪些文件被修改/哪些文件被删除/哪些文件没有进版本库)

6.git reset --hard 提交ID的前几个字母

可以跳转到某一个历史记录

所有的文件都很恢复到那时的状态

配置用户邮箱

7.git  reflog       查看所有commit和reset的记录

提交过程

工作区-->
暂存区-->分支(某个)->push-->远程Git库

远程Git库不是必须的!

暂存区存在的目的是可以挑选一部分文件提交,而不是将整个工作区全部提交

管理源代码的工具SVN与GIT的更多相关文章

  1. 代码管理(四)SVN和Git对比

    在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版 ...

  2. 版本控制工具--svn和git的使用(一) -----版本控制的好处以及分类

    版本控制工具 版本控制VCS(Version Control Systems)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.这个系统可以自动帮我们备份文件的每一次更改,并且可以 ...

  3. 版本控制工具--svn和git的使用(三) -----git的使用(2)

    远程仓库github是git所用的远程仓库,免费的也有私用的.github的账号注册,----省略.创建ssh key:$ ssh-keygen -t rsa -c 'github的账号'查看各个系统 ...

  4. 版本控制工具--svn和git的使用(二) -----SVN的操作

    SVN的使用 开头: 对于svn的详解,我不是很熟,只是用过svn的客户端,没使用过服务端,在这里我只是简单说一下在svn的客户端怎么拉取代码,提交代码和修改冲突等等.svn的客户端我在Mac中用的s ...

  5. 版本控制工具--svn和git的使用(三) -----git的使用(1)

    安装 git官网就有git各个系统的安装包,可以根据自己系统安装相应的安装包.window的git安装包 依据国内网速原因,将安装放到网盘里,链接: https://pan.baidu.com/s/1 ...

  6. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)

    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上) 本篇导读: 上篇介绍了常用的代码管理工具VSS,看了一下评论,很多同学深恶痛绝,有的甚至因为公司使用VS ...

  7. SVN和Git的功能和区别,尚学堂SVN和Git学习视频资料免费下载

    对于软件开发人员来说,版本控制系统再熟悉不过了,所谓版本控制系统就是软件项目开发过程中用于储存开发人员所写代码所有修订版本的软件.目前常见的版本控制系统分为集中式版本控制系统(SVN)和分布式版本控制 ...

  8. iOS核心笔记—源代码管理工具-SVN

    源代码管理工具-SVN 一. 源代码管理工具概述 1. 源代码管理工具的作用? > 能追踪一个项目从诞生一直到定案的过程 > 记录一个项目的所有内容变化,无限制返回 > 查看特定版本 ...

  9. 好代码是管出来的——使用Git来管理源代码

    软件开发过程中一个重要的产出就是代码,软件的编码过程一般是由一个团队共同完成,它是一个并行活动,为了保证代码在多人开发中能够顺利完成,我们需要使用代码版本控制工具来对代码进行统一存储,并追踪每一份代码 ...

随机推荐

  1. Atitit.多媒体区----web视频格式的选择总结

    Atitit.多媒体区----web视频格式的选择总结 1. 因为现阶段不同的浏览器支持的视频格式是不同的 1 2. 各浏览器Html5 Video支持的影音格式: 2 3. 解决方案是什么?Flas ...

  2. 响应式布局框架 Pure-CSS 5.0 示例中文版-中

    8. 表单 Form 在 form 标签中添加 .pure-form 类,可生成单行表单(inline) 效果图: 代码: <form class="pure-form"&g ...

  3. [转]如何为图片添加热点链接?(map + area)

    原文地址:https://www.cnblogs.com/jf-67/p/8135004.html 所谓图片热点链接就是为图片指定一个或多个区域以实现点击跳转到指定的页面.简单来说就是点击某一区域就能 ...

  4. 兼容浏览器的min-height和min-width

    http://www.cnblogs.com/pigtail/archive/2012/06/28/2568646.html CSS 子元素宽度变宽时,如何撑开父元素https://zhidao.ba ...

  5. Python 内置模块函数filter reduce

    1.filter()实现过滤的功能 2.reduce()对序列中元素的连续操作可以通过循环来处理 3.map()对tuple元组进行解包操作,调用时设置map()的第一个参数为None 4.使用red ...

  6. django 使用post方法出现403错误的解决办法

    当采用客户端象django的服务器提交post请求时.会得到403,权限异常.因为django针对提交的请教,有校验.所以会如此. 解决办法: 导入模块:from django.views.decor ...

  7. Git和Repo管理使用简要介绍

    在Linux平台下进行Android系统项目开发时,需要Git或repo管理. 一. Git和Repo的区别: 1. Git:Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的 ...

  8. FreeRTOS 消息队列

    以下基础内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 的一个重要的通信机制----消息队列,初学者要熟练掌握,因为消息 ...

  9. python 加密方法总结

    MD5 def md5(str): import hashlib m = hashlib.md5() m.update(str) return m.hexdigest() base64 import ...

  10. dp之多重背包2191

    水题........ #include<iostream> #include<stdio.h> #include<string.h> using namespace ...