1.什么是版本管理

  (多人协作)项目中常见的问题:

  • 代码放在什么地方 ??
  • 同步(到服务器),代码的冲突问题 ??
  • 服务器访问权限问题 ??
  • (代码)服务器内容修改的细节 ??
  • 项目版本的发布 ??

  

  版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

  版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。
具体来说,在每一项开发任务中,都需要首先设定开发基线,确定各个配置项的开发初始版本,在开发过程中,开发人员基于开发基线的版本,开发出所需的目标版本。当发生需求变更时,通过对变更的评估,确定变更的影响范围,对被影响的配置项的版本进行修改,根据变更的性质使配置项的版本树继续延伸或产生新的分支,形成新的目标版本,而对于不受变更影响的配置项则不应发产生变动。同时,应能够将变更所产生的对版本的影响进行记录和跟踪。必要时还可以回退到以前的版本。例如当开发需求或需求变更被取消时,就需要有能力将版本回退到开发基线版本。在曾经出现过的季度升级包拆包和重新组包的过程中,其实就是将部分配置项的版本回退到开发基线,将对应不同需求的不同分支重新组合归并,形成新的升级包版本。
版本控制是软件配置管理的核心功能。所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合软件开发流程的各个阶段。还需要定义、收集一些元数据来记录版本的辅助信息和规范开发流程,并为今后对软件过程的度量做好准备。当然如果选用的工具支持,这些辅助数据将能直接统计出过程数据,从而方便软件过程改进活动的进行。对于配置库中的各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来说,对于基线版本之前的各个版本都应处于被锁定的状态,如需要对它们进行变更,则应按照变更控制的流程来进行操作。
  总结:多人开发的时候怎么管理这些代码,文件等。

1.什么是git

  Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  版本管理器,管理代码的。

  1.1git工作流程

常规工作流程如下:

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

  工作流程示意图:

  

  1.2.git操作流程图

  

2.git注册

注册地址:https://github.com/

 

  我们点击右上角的sign up (注册的意思),然后会跳到注册页面。

  step1:

  第一步是填写注册的名字(name),

  第二行是填注册的邮箱(email),

  第三步是填写密码(password),

  填写完后点击create account

  

  step 2是选择计划(choose your plan),这里有两种选择,

  一是创建公开仓库(repository),二是创建个人仓库(private),但创建个人需要费用,因此,我们选择第一种。

  这里我们还可以创建(Organizations)。选好后,点击continue。

  

到此,我们就创建完了。

3.git客户端安装与使用

  3.1.Git-2.20.1-64-bit.exe安装与简单使用】  

  

  

  

  

  

  

  安装完,几乎全是默认下一步!

  3.2.Git命令简单使用

  1.用户信息配置

   配置个人的用户名称和电子邮件地址:

   $ git config --global user.name "wfd360"
$ git config --global user.email 851298348@qq.com

  

  如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

  如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

  2.查看配置信息

  要检查已有的配置信息,可以使用 git config --list 命令:

  

  3.git创建仓库

  执行命令:git init myWork,在当前目录下创建一个名为myWork的仓库.

  

  初始化后,会在 myWork目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

  如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交,

  创建好的文件夹如图:

  

  现在我们演示在,myWork中创建一个a1.txt文件,然后在提交到版本库里面,命令如下

  git add a1.txt

  git commit -m '提交a1.txt'

  4.从远程仓库拉取代码

  我们使用 git clone 从现有的远程 Git 仓库中拉取代码

  语法: git clone 远程地址

  案例:git clone https://github.com/bangbangw/testGit.git

  

  git的一些常规简单命令就介绍到这里,如果需要了解更多,可以查看官方文档:git完整命令手册:https://git-scm.com/docs

  弄了一堆命令,是不是感觉git咋个这么麻烦..........no...no....

  更更重要的是,我们作为程序员,其实完全没必要掌握这么一大堆命令,毕竟git作为一个程序开发的辅助工具,只要我们能用,不妨碍工作,怎么简单就怎么来,

  这就是我们在平时开发中经常使用的强大工具小乌龟客户端:TortoiseGit......

  3.2.TortoiseGit-2.7.0.0-64bit.msi安装与使用

  tortoiseGit下载地址:https://download.tortoisegit.org/tgit/

  

  下载完成后,同普通常规的软件安装方式一样,只需傻瓜式的直接下一步就可以了.

  1.检查是否安装成功,右键鼠标,如果出现如下图标,则安装成功

  

  2.检查受版本控制的文件是否有颜色标志,以刚才的建立的myWork仓库为例

  

  3.解决没有颜色图标

  TortoiseGit显示图标不正常

  Windows Explorer Shell支持的Overlay Icon最多15个,除去系统使用,只有11个。如果其他程序占用了,那么小乌龟就无法显示了。注册表定位到:

  Win+R-->regedit-->注册表:
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers。修改Tortoise项的名称(比如在名称前加0,会按照数字优先,将TortoiseGit相关的排在前面),让他们排到前面然后重启资源管理器就能正常显示了。

  

4.各图标颜色的含义

  1. 正常的文件夹或文件

  2. 被修改过的文件夹或文件

  3. 新添加的文件夹或文件

  4. 未受控的文件夹或文件

  5. 忽略不受控的文件夹或文件

  6. 删除的文件夹或文件

  7. 有冲突的文件夹或文件

  5.简单使用

  1.拉取代码

   

   远程仓库地址:https://github.com/bangbangw/testGit.git

   

   

   拉取下到本地的文件如图

   

     2.我模拟在testGit下进行工作,完成一个基本流程

   创建文件 a.txt ----->提交----->修改------>提交----->查看远程服务器文件是否存在

   1.创建文件 a.txt

   

   2.使用小乌龟提交

    在当前工作目录下,鼠标右键,如下图

     

选择ok

  

  这时候已纳入版本管理,然后在点击commit,提交到本地仓库

  

  填写提交的备注信息等...,然后点击commit

  

  点击push,将本地仓库更新到远程仓库

  

  点击ok

  

  输入远程仓库用户名

  

  输入远程仓库密码

  

  推送到远程仓库成功

  

  查看远程仓库是否有文件

  

  到此,一个从本地创建文件到推送的远程仓库的流程完成.

  推送完成后本地文件图标如图

  

  接下来演示,修改a.txt,然后在推送到远程仓库.

  修改a.txt文件内容后,图标变化如图

  

然后在鼠标右键,按照如下选择

  

  填写提交备注,然后点击commit,接下来的流程与刚才一样,根据提示对话框提示一步步往下走即可...

  

  到此TortoiseGit的常规用法就介绍到这里.

4.idea git 整合使用

  具体步骤详见:https://www.cnblogs.com/newAndHui/p/10594956.html

5.git分支、合并与使用

  具体步骤详见:https://www.cnblogs.com/newAndHui/p/10846276.html

6.idea中git标签(tag)的创建与使用

  具体步骤详见:https://www.cnblogs.com/newAndHui/p/10846954.html

  完美!

git零基础快速入门实战,重点讲解,在实际生产中整合idea对版本、分支的管理等的更多相关文章

  1. 【课件】git零基础快速入门实战--重点讲解,在实际生产中整合idea对版本、分支的管理等

    1.git简单描述 git是重要的版本管理工具,几乎每个码农都有自己的git账号管理自己的代码,同时很多公司也是用git管理公司的代码, 因此掌握git在实际生产中的常规使用非常重要. 2.git学习 ...

  2. git内容补充-Git零基础快速入门-苏玲

    https://git-scm.com/book/zh/v2 git历史 集中式版本控制管理:cvs.svn 分布式版本控制管理:git 基本命令 git config --list --global ...

  3. 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1、SpringBoot2.x课程介绍和高手系列知识点

    1 ======================1.零基础快速入门SpringBoot2.0 5节课 =========================== 1.SpringBoot2.x课程全套介绍 ...

  4. [易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具]

    [易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具] 项目实战 实战5:实现BTC价格转换工具 今天我们来开发一个简单的BTC实时价格转换工具. 我们首先 ...

  5. [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]

    [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的 ...

  6. [易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)] 项目实战 实战3:Http服务器 我们今天来进一步开发我们的Http服务器,用多线程实现. 我 ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现 ...

  8. [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...

  9. [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏]

    [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战. 第一个简单项目是猜数字游戏. 简单来说,系统给了 ...

随机推荐

  1. SSH框架之Struts2第一篇

    1.2 Struts2的概述 : Struts2是一个基于MVC设计模式的WEB层的框架. 1.2.1 常见web层框架 Struts1,Struts2,WebWork,SpringMVC Strut ...

  2. localstorage实现两个页面通信,购物车原理。

    如:A,B页面,A为商品页,B为购物车页,两个页面同时打开,在A页面点击商品添加至购物车,切换到B页面购物车怎么显示该商品信息 利用localStroage,A页面将数据存入localStroage, ...

  3. [日常] windows下使用vscode配合xebug调试php脚本

    windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,php7.3应该是有的,php7.3.4好像没有默认是不加载这个扩展 ...

  4. s3c2440裸机-UART编程(二、UART编程实现)

    UART编程 1.初始化 我们的2440支持3个UART串口,以uart0为例讲解. 那么我们需要实现以下这几个函数完成串口的最基本功能: (1)uart0_init()用于初始化串口 (2)putc ...

  5. 运行springboot项目报错:Field userMapper in XX required a bean of type 'xx' that could not be found.

    运行springboot项目报错: *************************** APPLICATION FAILED TO START ************************** ...

  6. Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门

    1.Number 和 Math 类: 在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型(int,double,float这些)的情形. 这种由编译器特别支持的包装称为装箱,所以当内置数 ...

  7. 不依赖官方LibPack编译FreeCAD的一次尝试

    在Windows下编译FreeCAD,通常的方法是依赖官方提供的LibPack,但是只有vs2008, vs2012, vs2013等几个版本提供.比如现在感觉vs2017比较好用,可是没有官方Lib ...

  8. go语言设计模式之proxy

    代理模式,单元测试用例真的写得详细, 受教~ proxy.go package proxy import ( //"errors" "fmt" ) type U ...

  9. 微信小程序支付功能讲解(1)

    前言:虽然小程序做过很多,但是一直觉得微信支付功能很是神秘,现在终于有机会接触心里还是有点小激动的,经过一番折腾发现支付也不过如此,在此记录下支付功能的实现过程 小程序的官方文档介绍到发起微信支付即调 ...

  10. os 和 sys 的模块使用方法和模块

    os  的模块  方法 os.remove()删除文件 os.rename()重命名文件 os.walk()生成目录树下的所有文件名 os.chdir()改变目录 os.mkdir/maked ...