图文详解 : 什么是版本控制?Eclipse配置SVN和IDEA配置GIT教程
前言
虽然在工作中, 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教程的更多相关文章
- [图文详解] Sublime Text在Windows/Ubuntu/Mac OSX中配置使用CTags
很开发者都在找Sublime Text中函数转跳的功能,这个是软件自身没有的功能,要靠CTags这个插件配合CTags的可执行程序的实现的.按照我的理解是CTags扫描索引你的项目文件,然后subli ...
- 如何在Eclipse或者Myeclipse中使用tomcat(配置tomcat,发布web项目)?(图文详解)(很实用)
前期博客 Eclipse里的Java EE视图在哪里?MyEclipse里的Java EE视图在哪里?MyEclipse里的MyEclipse Java Enterprise视图在哪里?(图文详解) ...
- 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)
不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...
- 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...
- Python安装、配置图文详解(转载)
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...
- 【和我一起学python吧】Python安装、配置图文详解
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...
- 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...
- Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)
这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
随机推荐
- 一段有关线搜索的从python到matlab的代码
在Udacity上很多关于机器学习的课程几乎都是基于python语言的,博主“ttang”的博文“重新发现梯度下降法——backtracking line search”里对回溯线搜索的算法实现也是用 ...
- SpringBoot 配置 Tomcat SSL
SpringBoot 配置 Tomcat SSL SSL(Secure Sockets Layer , 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密 ...
- python中else与finally的总结
1.else的用法 对try...except的补充: else子句的使用比在子句中添加其他代码更好,try因为它避免了意外捕获由try... except语句保护的代码未引发的异常. for arg ...
- CSS实现按钮YES-NO按钮+Jquery获取按钮状态。
前几天我经理突然跟我说,能不能做一个开关按钮,需要过滤的一个标识.说实话,一个做后端我是懵逼状态的. 不过网上资料很多,查了一遭,发现一个不错的哥们给出的案例,模仿一下成功实现,下面就自己总结一下: ...
- bzoj3993: [SDOI2015]星际战争(二分+最大流)
题目描述 3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战. 在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进攻X军团的阵地,其中第i个巨型机器人的装甲值为Ai.当一个巨型机器人的装甲值 ...
- 【leetcode】1296. Divide Array in Sets of K Consecutive Numbers
题目如下: Given an array of integers nums and a positive integer k, find whether it's possible to divide ...
- spring-boot web项目常用配置
一.对用户输入query参数过滤空字符串 使用 WebBindingInitializer 来对string类型参数进行过滤,但是这种方式只能处理query参数不能处理body参数 代码例子: /** ...
- 怎么把word文档粘贴到编辑器里啊?
很多时候我们用一些管理系统的时候,发布新闻.公告等文字类信息时,希望能很快的将word里面的内容直接粘贴到富文本编辑器里面,然后发布出来.减少排版复杂的工作量. 下面是借用百度doc 来快速实现这个w ...
- php+文件分块上传
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...
- 【线性代数】2-4:矩阵操作(Matrix Operations)
title: [线性代数]2-4:矩阵操作(Matrix Operations) toc: true categories: Mathematic Linear Algebra date: 2017- ...