文章目录

  • 版本控制
    • 什么是版本控制
    • 常见的版本控制工具
    • 版本控制分类
    • Git与SVN的主要区别
  • Git的历史
  • Git安装与配置
  • TortoiseGit的安装
  • Git基本理论
  • Git项目搭建
  • Git文件操作
  • GitHub远程仓库
    • HTTPS同步
    • HTTPS克隆
    • SSH同步
  • IDEA配合GitHub网站上传项目
  • 从GitHub网站克隆项目到IDEA
  • 分支
    • 分支简介
    • 创建分支
    • 切换分支
    • 合并分支
    • 删除分支
  • IDEA下的分支操作
    • 创建分支
    • 切换分支
    • 合并分支
    • 删除分支
  • IDEA下的忽略文件

版本控制

什么是版本控制

什么是版本控制? 版本迭代、新的版本!

版本控制(Revision Control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录备份以便恢复以前的版本的软件工程技术。

  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误

常见的版本控制工具

多人开发就必须要使用版本控制!

常见的版本控制工具

主流的版本控制器有如下这些:

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制产品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),现在影响力最大且使用最广泛的是Git与SVN。

版本控制分类

1、本地版本控制

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

2、集中版本控制 SVN

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS。

3、分布式版本控制 Git

每个人都拥有全部的代码!安全隐患!

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

不会因为服务器损坏或者网络问题,造成不能工作的情况!

Git与SVN的主要区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。

Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!

Git是目前世界上最先进的分布式版本控制系统。

Git的历史

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

Linux社区中存在很多的大佬!破解研究 BitKeeper !

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。(2周左右!) 也就是后来的 Git!

Git是免费、开源的,最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper!

Git安装与配置

下载地址:https://git-scm.com/downloads

最新版:2.28.0。

安装完成!

Git Bash: Unix与Linux风格的命令行,使用最多,推荐最多

Git CMD: Windows风格的命令行

Git GUI: 图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

环境变量的配置

D:\Program Files\Git\bin添加到环境变量PATH中。

在Bash窗口使用Linux命令操作。

鼠标右键即可选择Git客户端的命令行窗口。

设置用户名和邮箱(用户标识,必要的)

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息,它被永远的嵌入到了你的提交中:

git config --global user.name "ShawnYue08"  #名称
git config --global user.email 1625454122@qq.com   #邮箱

只需要做一次这个设置,如果你传递了–global 选项,Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。

Git的配置

所有的配置文件,其实都保存在本地!

查看配置

git config -l

Git相关的配置文件:

1)D:\Program Files\Git\mingw64\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级

[diff "astextplain"]textconv = astextplain
[filter "lfs"]clean = git-lfs clean -- %fsmudge = git-lfs smudge -- %fprocess = git-lfs filter-processrequired = true
[http]sslBackend = opensslsslCAInfo = D:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
[core]autocrlf = truefscache = truesymlinks = false
[pull]rebase = false
[credential]helper = manager

2)C:\Users\shawn\ .gitconfig 只适用于当前登录用户的配置 --global 全局

[user]email = 1625454122@qq.comname = ShawnYue08
[credential]helper = manager

查看不同级别的配置文件:

#查看系统config
git config --system --list  
#查看当前用户(global全局)配置
git config --global  --list

TortoiseGit的安装

不同的是:git是命令行操作模式,TortoiseGit界面化操作模式,不用记git相关命令就可以直接操作。

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

最新版:2.10.0。

在安装过程中需要注意的:

1、配置git.exe

2、配置用户信息

安装完成后,鼠标在桌面/目录右键,会增加三个选项,Git Clone,Git Create repository here,TortoiseGit。

下载简体中文语言包

Git基本理论

三个区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。

Git项目搭建

创建工作目录与常用指令

工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。

日常使用只要记住下图6个命令:

本地仓库搭建

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

1、创建全新的仓库(本地文件夹),E:\XiBuKaiYuan\Git\LocalRepository,在文件夹内部打开Git Bash;

会发现多出了一个隐藏文件夹.git,刷新后,这个文件夹上会有一个勾;

LocalRepository就是工作目录。.git就是版本库。

克隆远程仓库

1、另一种方式是克隆远程仓库,是将远程服务器上的仓库完全镜像一份至本地!

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]  https://github.com/ShawnYue08/mybatis-plus-doc.git

2、去 gitee 或者 github 上克隆一个测试!

Git文件操作

在本地仓库新建一个文件

先添加到Index暂存区;

# git add 文件名称             添加文件到暂存区
# git add .                  添加所有文件到暂存区

提交commit

# git commit -m "消息内容"    提交暂存区中的内容到本地仓库 -m 提交信息 commit命令一定要带这个参数

修改文件

已经提交到版本库的文件不可避免的会被修改。

重新提交

点击提交即可。

图标又变为了绿色。

查看修改历史

TortoiseGit,显示日志。

查看某个版本是谁修改的、什么时间、修改了哪些内容等。

比较差异

TortoiseGit,与上一版比较差异。

还原修改

当文件修改后,不想把修改的内容提交,想要还原到未修改之前的状态,此时可以使用还原功能。

新建文件MyTest.txt,内容为HelloWorld字符串。

添加到暂存区,提交到版本库。

但是不想修改了,要还原到以前的版本。

TortoiseGit,还原。

删除文件

TortoiseGit,选择删除,这样只是从工作目录删除,要想从版本库中删除必须提交。

查看版本库

TortoiseGit,选择版本库浏览器;

查看文件状态

#查看指定文件状态
git status [filename]#查看所有文件状态
git status

忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt        #忽略所有.txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

添加一个大的Java本地项目

添加Add后,可以用TortoiseGit删除并添加到忽略列表完成忽略。

将target目录、.idea目录和.iml文件作为忽略目录和文件;

保留本地文件,选择是。

TortoiseGit,提交;

查看版本库浏览器:

GitHub远程仓库

GitHub支持两种同步方式:HTTPS和SSH。

注册账号,登录GitHub网站。

HTTPS同步

创建一个仓库GitLearn远程仓库,把我们本地的仓库同步push到远程仓库。

首先我们使用HTTPS同步方式;

在本地仓库中,鼠标右键,选择Git同步;

选择管理远端URL;

点击确定后,点击推送;

查看远端仓库;

HTTPS克隆

将远程仓库的项目(MyBatis-3)克隆到本地使用HTTPS方式。

SSH同步

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

在windows下我们可以使用 Git Bash.exe来生成密钥,可以通过开始菜单或者右键菜单打开Git Bash。

在下面的界面选择右上角的New SSH Key;

选择.pub文件,打开,将里面的全部复制到下面的位置;

IDEA配合GitHub网站上传项目

1、在IDEA中配置Git和GitHub网站的用户名和密码

2、在IDEA中创建工程

3、将此工程上传到GitHub网站,IDEA会自动帮我们在网站上创建仓库,仓库名就是项目名

新增文件,并push到远程仓库;

4、下面这种方式也可以推送到GitHub仓库

从GitHub网站克隆项目到IDEA

如果只是想要把项目克隆到本地,那么可以使用TortoiseGit,点击Git克隆,然后填写url即可。

方式一:

但是,选择从GitHub网站克隆项目时,速度特别慢。

此时,可以在国内的码云上创建仓库,导入已有仓库,GitHub仓库的URL。

然后从码云上克隆项目到本地。

码云速度快多了。

分支

分支简介

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。

有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。

创建分支

新建文件夹MyBranchTest,进入文件夹,使用TortoiseGit,在这里创建版本库。

新建文本文件基本功能.txt,提交到master分支。

当我希望在基本功能的基础上添加额外功能还不想影响原有的代码时,可以创建分支。

右键,TortoiseGit,创建分支,

切换分支

右键,TortoiseGit,切换/检出;

新建视频功能.txt,添加,提交到dev分支。

此时dev1分支存在两个文件,而master分支只有一个基本功能.txt文件。

当我在dev1分支下时,文件夹中有两个文件,当我切换/检出到master分支时,文件夹只有一个基本功能.txt文件。

然后可以在master分支的基础上,新建一个分支dev2,开发音频功能.txt。

合并分支

现在要合并dev1分支和dev2分支到master分支。

首先切换到master分支。

右键,TortoiseGit,合并分支。

合并dev1分支。

合并dev2分支。

OK,合并完毕。

删除分支

假如dev1分支和dev2分支已经完成使命,将他们各自的代码合并到了master分支,要想删除分支呢?

在master分支下,右键,TortoiseGit,选择浏览引用。

IDEA下的分支操作

使用我们之前的上传到GitHub网站的项目,GitTestDemo。

这个项目目前只有master分支。

如何在GitHub上查看分支?

创建分支

如何在IDEA下创建分支?

新建dev1分支并切换;

在dev1分支下,新建视频功能的类;

push到远程仓库;

在GitHub远程仓库的dev分支下,才可以看到Video类。

切换分支

在IDEA里切换分支特别简单,只需要点击项目右下角的分支即可。

点击哪个分支,切换到哪个分支,点击之后,点击checkout即可。

合并分支

按照切换分支的方法,首先切换到master分支;

合并dev1分支到master分支后需要push到远程仓库

删除分支

dev1分支任务完成,如果想要删除分支。

既要删除本地分支,也要删除远端分支。

删除完毕后,本地和远程都只剩master分支。

IDEA下的忽略文件

有时候不想把项目所有文件夹/文件提交到远程仓库,这时就需要忽略文件。

新建一个GitTestDemo2普通项目。

添加本地仓库,作为一个Git项目。

下面介绍一款忽略文件的IDEA插件。

通过它可以很好的配置项目中的忽略文件。

(在IDEA的设置plugins下搜不到,选择在IDEA官网下载,然后引入即可)

https://plugins.jetbrains.com/plugin/7495–ignore

打开项目,

如果这个不出现的话,还可以

版本控制介绍、Git的安装、TortoiseGit的安装、Git的文件操作、IDEA + 同步到GitHub远程仓库 | 克隆 | 分支 | 忽略文件相关推荐

  1. git创建/合并分支/删除分支/将修改后的内容同步到GitHub远程仓库

    1.创建分支并切换到刚创建的分支(这里创建新的分支来修改README.md的内容然后将创建的分支与master分支合并,最后删除创建的分支) $ git checkout -b 分支名 Switche ...

  2. Git本地代码同步到Github远程仓库

    一:本地代码上传到git远程库步骤: 1,(先进入项目路径)通过命令git init把这个​​目录变成git可以管理的仓库 git init 2,把文件添加到版本库中,使用命令git add. git ...

  3. 【Git】Git 分支管理 ( 解决分支合并冲突 | 推送主版本和分支版本到远程仓库 | 合并分支出现文件冲突 )

    文章目录 一.推送主版本和分支版本到远程仓库 二.合并分支出现文件冲突 一.推送主版本和分支版本到远程仓库 执行 git push origin master 命令 , 将 master 分支推送到远 ...

  4. git安装、使用、建立github远程仓库、克隆远程仓库

    文章目录 安装git 单机上使用git 建立GitHub远程仓库 克隆GitHub远程仓库 安装git [root@linux ~]# yum -y install git 单机上使用git 创建仓库 ...

  5. git学习-如何将本地项目上传(同步)到github远程仓库

    初学github想要把自己做过的online judge题解上传到github上去.有两种方法, 一,直接在github网页上完成创建代码文件并编写,比较容易. 二,是本地编写完代码,放到本地仓库,然 ...

  6. 代码管理平台介绍、安装svn、客户端使用svn、远程仓库、分支管理、标签管理、git别名、搭建git服务、安装gitlab、简单使用gitlab、备份和恢复

    22.1 代码管理平台介绍 现在的开发工作都是由团队合作来完成开发,通常都是团队中的每个人或者每几个人完成一个模块的开发,最后再将模块拼凑起来,形成一个完整的项目,这就涉及到了协同开发.在各个模块的开 ...

  7. gitee的注册使用,git下载,TortoiseGit下载安装

    git安装包下载 TortoiseGit安装包下载 在我们学习编程的过程中,会练习很多代码,这些代码的保存和版本的更新,会占据很多地方,因此我们可以使用gitee进行保存.当然这里还有很多开源的项目, ...

  8. Git 安装使用 本地Git 服务器的使用 Github 远程仓库

    一.Git 安装使用 1. Git 安装配置 1.Yum 安装 Git Centos/RedHat 安装命令 [root@localhost ~]# yum -y install curl-devel ...

  9. 【Git笔记1】本地项目与GitHub远程仓库互联

    秋招面试的时候,面试官就问了我:你会Git吗?我迟疑看着他,他微笑着说,入职前要抓紧时间好好学习一下. 由于地理位置优势先来公司熟悉下环境,咨询算法组组长入职前可以做些什么准备?组长说,Git要好好学 ...

最新文章

  1. C#中如何将将数据导出到word excel 中
  2. css3 3d变换和动画——回顾
  3. Echarts的提示(Tooltip)显示额外内容
  4. LAMP服务搭建详解
  5. android java 调试快捷键_Android Studio 代码页跳界面 /java和XML快速切换技巧
  6. ifound Android wifi,方正新品记录仪iFound V1号称黑夜变白天,真的假的?
  7. 国内首部Sharepoint 2010深入开发(工作流+安全性+单点登录+AD开发、认证等)
  8. Spring Cloud版——电影售票系统七使用 Zuul 构建微服务网关
  9. 国外大神制作的史上最精简Win10系统,真有那么好用吗?
  10. 如何区分abcd类地址_ip地址abc类怎么区分
  11. Iperf官方andriod版iperf3
  12. Vue Cli3 模拟后台json接口
  13. 电脑装两个硬盘在计算机只显示一个,电脑有两个硬盘,如何去掉机械硬盘中的那套系统?...
  14. kernel: kmalloc
  15. JAVA远程连接ssh异步,SSH-2实现java连接远程服务器并执行脚本命令
  16. 2022年企业CS1升级到CS2需要什么条件 ?有什么流程?
  17. |密码狗|Dongle|克隆狗|U盘狗
  18. 这个表是怎么回事??? [问题点数:50分] 收藏
  19. vm进入bios设置的方法
  20. frontpage制作php,FrontPage 应用制作技巧四则

热门文章

  1. C#实现将excel转换成pdf的三种方法
  2. ROS教程1:安装和配置ROS环境
  3. 可转债交易系统日内短线战法股债联动自定义
  4. 设备安装安兔兔第三方检测屏幕为7.54英寸,修改
  5. Logstash~filter.json过滤器使用教程(附带示例)
  6. (qt)qml与html通信(QWebChannel的使用)
  7. “新经济 新境界 新发展”跨境电商高峰论坛在兰举行
  8. redux设计理念_重新设计Redux
  9. .NET使用Bogus生成大量随机数据
  10. WiFi遥控斜三角履带机械臂小车实现移动和搬运功能