如何看待源代码

源代码是公司的重要资产

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

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

一、管理源代码的工具

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. C++知识点 笔试常见

    C++知识点   一.#include “filename.h”和#include <filename.h>的区别 #include “filename.h”是指编译器将从当前工作目录上开 ...

  2. Linux下让进程在后台可靠运行的几种方法

    想让进程在断开连接后依然保持运行?如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作? 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一 ...

  3. vue-cli中实现全选、单选计算总价格(vue2.0)

    <template> <div> <table> <tr> <td><input type="checkbox" ...

  4. ubuntu时钟不显示的解决方法

    原文链接:http://muzi.info/articles/529.html 有时候我们会看到我们电脑的状态栏那里并没有显示时间,一个原因是日期时间指示器没有工作,另一个可能的原因是用户禁用了时间显 ...

  5. 初识STM32固件库

    因为基于 Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难.为了解决不同的芯片厂商生产的 Cortex 微控制器软件 的 ...

  6. vue 单元测试

    单元测试 配置和工具 任何兼容基于模块的构建系统都可以正常使用,但如果你需要一个具体的建议,可以使用Karma进行自动化测试.它有很多社区版的插件,包括对webpack和browserify的支持. ...

  7. ubuntu server执行sudo出现"no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory"

    [Ubuntu] 執行 sudo 時,出現 "no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory ...

  8. SVN文件排除

    背景:原来SVN库人事2.0在24.42server上,后来server改革,把库迁移到了24.248server上. 原来24.42上的库,在update或commit后文件总是绿色的.看着心里特别 ...

  9. C语言 · 最大乘积

      算法提高 最大乘积   时间限制:1.0s   内存限制:512.0MB      问题描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入格式 第一行一个数表示数据组数 每组 ...

  10. KMP + 求相等前后缀--- POJ Seek the Name, Seek the Fame

    Seek the Name, Seek the Fame Problem's Link: http://poj.org/problem?id=2752 Mean: 给你一个字符串,求这个字符串中有多少 ...