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. Winform中实现ZedGraph滚轮缩放后自动重新加载数据

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  2. Vue组件通信的几种方法

    上一节说到,vue.js是允许子组件通过props接受父组件的信息,但是不允许父组件通过props接受子组件的信息 1. $emit()和on 当子组件需要向父组件传递数据时,就要用到自定义事件. 使 ...

  3. CentOS7 忘记Root密码解决方法

    1- 在启动grub菜单,选择编辑选项启动 ​ 2 - 按键盘e键,来进入编辑界面 ​ 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh ​ 4 - 现在 ...

  4. 第6次作业--static关键字、对象

    题目1:编写一个类Computer,类中含有一个求n的阶乘的方法.将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值由参数 ...

  5. 大数据量数据库设计与优化方案(SQL优化)

    转自:http://blog.sina.com.cn/s/blog_6c0541d50102wxen.html 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的 ...

  6. AcWing 46. 二叉搜索树的后序遍历序列

    地址 https://www.acwing.com/solution/acwing/content/3959/ 题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果. 如果是则返回t ...

  7. C++并发编程实战

    第1章 你好,C++并发世界 第2章 管理线程 第3章 在线程间数据共享 第4章 同步并发操作 第5章 C++内存模型和原子类型操作 第6章 设计基于锁的并发数据结构 第7章 设计无锁的并发数据结构 ...

  8. Tomcat中session复制技术

    一.准备三台机器主机的服务都正常,nginx与Tomcat构建负载均衡 主机名     IP地址 nginx       192.168.200.111 Tomcat1  192.168.200.11 ...

  9. 分治 FFT

    为啥要叫分治\(fft\)啊,又用不到\(fft--\) 给定长度为\(n-1\)的数组\(g[1],g[2],--,g[n-1]\),求\(f[1],f[2],--,f[n]\),其中 \[f[i] ...

  10. Ant默认配置文件不是build.xml该如何编写命令进行编译打包

    Ant的构件文件是基于XML编写的,默认名称为build.xml. ant命令默认寻找build.xml文件.若文件名为hello.xml时,读者还需要对命令做少许改变, 改为:ant –f hell ...