前言

  虽然在工作中, VCS已然配置妥当, 我们敲好的业务只需要Commit&push提交就好, 但是不妨碍我们了解什么是版本控制, 为什么要使用这类工具?

  ps.最近项目里的小伙伴想在自己家中配置Git, 所以我在此写点随笔, 记录一下配置流程, 以供参考.

  在打开IDEA后, 在导航区会有这样一个举足轻重的模块, 没错, 它就是本文的主角VCS:

  打开它:

  会发现这里IDEA可以检查三种不同的VCS工具, 分别是Git, Mercurial, Subversion(即Svn).

什么是VSC(Version Control System, 版本控制系统)?

  版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如svn,git等。[惯例查询度娘]

  工作中更多的注重, VCS的回溯能力以及细节变化, 它能将某个文件/项目回溯到有记录的状态, 以逃避版本变更带来的不可快速解决的问题, 维持正常的线上运转 ; 细节变化, 可以让我们查询最后是谁对哪里做了怎样的修改, 从中找出怪异问题的"罪魁祸首".

有哪些工作中常用的VSC呢?它们都有哪些区别?

  1.本地版本控制, 如RCS, 暂不了解  

  2.CVCS ( 集中化的版本控制系统Centralized Version Control Systems ) , 如Svn, Perforce

  3.DVCS( 分布式版本控制系统Distributed Version Control System ), 如Git, Mercurial

  CVCS都有一个单一的集中管理的服务器( 一台作为服务端的主机 ), 而协作的人们都通过客户端 ( 各自的主机 )连接到这台服务器, 去除最新的文件或者提交更新, 比如Svn 还提供了管理权限; 但是中央服务器的缺陷也是显而易见的, 比如单点故障, 中央服务器宕机, 那么谁也无法继续作业; 更坏的情况, 假如中央服务器的物理硬件发生损坏, 又没有适当适时地备份, 那就GameOver了, 几天的开发进度可能付之东流!

  为了解决这种问题, 于是DVCS问世了, 在这类系统, 像Git, Mercurial中, 客户端并不只是最新版本的文件快照, 而是将整个代码repository 镜像下来, 任何一处协同工作的服务器发生故障, 事后都可以用任何一个镜像来恢复, 每一次的clone 其实就是对repository的完整备份!

Eclipse中搭建Svn的过程

//TODO

IDEA中搭建Git, 连接GitHub的过程

        

  Git工具官网下载地址: https://git-scm.com/downloads , 截止2019年7月27日, 最新版本为 Git 2.22.0

  注意, IDEA支持Git 2.9+ , 最好下载更新的Git

  Git安装中文翻译(并非安装教程, 可根据需要自行选择) 参考链接:https://blog.csdn.net/sishen47k/article/details/80211002

  安装完成后, 右键空白处或需要操作的文件夹后, 显示以下, 则表示安装成功:

          

  接下来配置Git 连接 GitHub: 

1.右键 -- Git Bash Here, 输入以下命令, 设置git全局用户名和邮箱( 可以填入GitHub的 )

  表示用这个账号控制版本, 当然, 你也可以不同仓库使用不同的用户名来管理.

    

2.设置与GitHub的关联, 可用ssh (Secure Shell, 安全外壳协议)

  首先查看C:/用户/本机账号名  目录下是否有 .ssh文件夹, 如果有, 先删除(一般未配置过连接是没有这个文件夹的), 如win10系统下 :

      

  我这里还未关联, 所以不存在.ssh文件, 假若你有, 可以选择删除它, 来重新配置, 在Git命令行输入:

      

ssh-keygen -t rsa -C "your_email@youremail.com"

  一路回车下去, 最终显示: (当然你的肯定是一些乱七八糟的字符,我这个可是充了值的(误)!)

      

  显示成功, 并在刚才的C盘目录下发现创建了.ssh文件夹, 并在文件夹里生成了两个文件, 表示生成ssh成功!如下图:

      

  用编辑器打开 id_rsa.pub 文件, 全选复制内容!!!

3.在网页中打开GitHub账号, 并new一个仓库 repository

  

  然后访问:https://github.com/settings/ssh/new 添加新的SSH 关联

  将方才复制的 id_rsa.pub 内容粘贴进去! 最后重新输入认证密码, 即可在GitHub上保存一份SSH, 你的Git 已经可以关联到GitHub了 (这时你的邮箱会提醒你了, 账号下新增了一个token认证!!!总算告一段落 休息一下,叉会儿腰,再玩儿会手机, 告别这满是英文的"地狱", 开玩笑的, 我们继续 )

4.初始化本地仓库, 选择一个本地文件夹, 作为git的本地仓库, 存储项目镜像(其实如同一份备份)

   

在当前目录内, 右键打开GitBash, 输入:

  会在当前文件夹下创建一个.git文件夹

5. 接着输入: git add .      将该目录下的文件都添加到仓库里, 作为一个主分支( master )

  接着输入: git commit -m "content"    content即为本次提交的注释,最好该注释是有意义的,因为以后跟别人一起用git开发项目时,回退时根据该注释就可以知道提交的时候修改了什么内容。
  

  

  

图文详解 : 什么是版本控制?Eclipse配置SVN和IDEA配置GIT教程的更多相关文章

  1. [图文详解] Sublime Text在Windows/Ubuntu/Mac OSX中配置使用CTags

    很开发者都在找Sublime Text中函数转跳的功能,这个是软件自身没有的功能,要靠CTags这个插件配合CTags的可执行程序的实现的.按照我的理解是CTags扫描索引你的项目文件,然后subli ...

  2. 如何在Eclipse或者Myeclipse中使用tomcat(配置tomcat,发布web项目)?(图文详解)(很实用)

    前期博客 Eclipse里的Java EE视图在哪里?MyEclipse里的Java EE视图在哪里?MyEclipse里的MyEclipse Java Enterprise视图在哪里?(图文详解) ...

  3. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

  4. 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...

  5. Python安装、配置图文详解(转载)

    Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...

  6. 【和我一起学python吧】Python安装、配置图文详解

     Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...

  7. 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

  8. Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...

  9. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

随机推荐

  1. Educational Codeforces Round 73 (Rated for Div. 2) D. Make The Fence Great Again(DP)

    链接: https://codeforces.com/contest/1221/problem/D 题意: You have a fence consisting of n vertical boar ...

  2. 前端css知识实现自动打字,文字滚动

    HTML部分: <div class="div1"> <div class="div2">文字文字文字文字文字文字文字文字文字文字文字文 ...

  3. React生命周期, 兄弟组件之间通信

    1.一个demo(https://www.reactjscn.com/docs/state-and-lifecycle.html) class Clock extends React.Componen ...

  4. Jmeter测试部全体学习

    Jmeter小助手:__counter   __Random   __UUID   __CSVRead 性能指标:CPU  内存  磁盘  网络   版本(系统版本) linux命令: top 能够试 ...

  5. 通信网络(CCF)【图的遍历】

    问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息.信息可以通过中转的方式进行传递,即如果a能将信息 ...

  6. vue-cli3构建多页面应用2.0

    1.0版本点这里 -> 博客:vue-cli3构建多页面应用1.0   github:vue-cli-multipage 在1.0版本上做了以下改进: 1. 增加pages.config.js, ...

  7. [Luogu] 维护序列

    https://www.luogu.org/problemnew/show/P2023 线段树双懒标记下放 #include <bits/stdc++.h> using namespace ...

  8. 1250 Fibonacci数列(矩阵乘法)

    1250 Fibonacci数列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 定义:f0=f1=1, fn=fn-1+fn ...

  9. AcWing:178. 第K短路(A*)

    给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边. 注意: 每条最短路中至少要包含一条边. 输入格式 第一行包含两个整数N和M. 接下来M行 ...

  10. 1.RabbitMq - Work 模式

    RabbitMq - Work 模式 一.什么是Work模式 如果有几个消息都需要处理,且每个消息的处理时间很长,仅有一个消费者,那么当它在处理一个消息的时候,其他消息就只有等待. 等待有时候是好的, ...