文章目录
版本控制(VCS)
考虑两个问题:
1)小组分工合作开发项目时如何将代码整合到一起?
2)如果项目出现问题,如何回到正确版本上?
那么我们就需要一种工具能集中管理项目的代码,每个开发人员能够获得项目代码,并能够将代码提交到项目上;除此外能保存不同版本的代码,方便代码切换到特定的版本上。
VCS的概念
版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。
常用的版本控制器主要是两种
- git:一种分布式版本控制工具
- SVN:一个开放源代码的集中式版本控制系统
集中式和分布式的区别
集中式
一台电脑作为服务器,每台电脑都把代码提交到服务器上,再从服务器下载代码。如果网络出现问题或服务器宕机,系统就不能使用了。
分布式
没有中央服务器,每台电脑都可以保存代码版本,没有网络的时候可以先提交到本地,每台电脑也都可以作为服务器,其他电脑可以从作为服务器的电脑上克隆代码,可见分布式系统比集中式系统的安全性高很多。
这里主要使用git
git的工作流程
1、git clone 克隆远程资源到本地目录,作为工作目录;
2、然后在本地的克隆目录上添加或修改文件;
3、如果远程修改了,需要同步远程的内容,直接git pull就可以更新本地的文件;
4、本地在修改之后,可以通过git status 查看修改的文件。然后使用git add 添加修改的文件暂到缓冲区;
5、在添加之后,可以使用git commit添加到当前的工作区;
6、在修改完成后,如果发现错误,可以撤回提交并再次修改并提交;
7、git push将本地的修改推送到远程的git服务器。
git的基本使用
1.下载并安装git
下载地址:
官网,腾讯网站(本人没用过)
因为之后是使用IDEA使用,所以直接一直下一步直到安装完成即可
2.添加用户参数
Windows的命令(在cmd中执行即可)
下列指令的$均不需要输入,Linux中也是自动输入
$ git config --global user.name "用户名"
$ git config --global user.email "邮箱"
用户名最好不要用中文
邮箱是用于连接远程仓库(github、gitee)时用,需要远程仓库也要使用此邮箱作为主邮箱
3.初始化git仓库
选择需要进行版本控制的文件夹(测试时新建一个文件夹即可),在此文件夹路径中使用cmd输入
$ git init
该文件夹中生成了一个.git文件夹即为成功(可能为隐藏文件)
4.添加文件
Git有3个区域,一个是工作区,一个叫暂存区,一个叫仓库。见上面图
添加文件即将工作区的文件添加到暂存区。
向缓存区添加指定文件
$ git add readme.txt
向缓存区添加全部文件
$ git add .
向缓存区添加全部文件
$ git add -A
5. 提交文件
将缓存区的文件提交到仓库,提交说明为必选项
$ git commit -m '提交说明'
5.1 查看文件当前状态
会显示是否有某个文件和本地仓库中的文件不同
$ git status
5.2 查看变化
会显示是否有某个文件和本地仓库中的文件详细不同
$ git diff
二者的区别
5.3 Git回退
5.3.1 查看提交记录
$ git log
5.3.2 查看每一次操作记录
$ git reflog
5.3.3 版本回退
$ git reset --hard HEAD~1
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
HEAD~100
是指回退100个版本,不是回退到第100个版本
6. 管理修改
6.1 管理修改
文件第一次修改是需要添加到暂存区
第一次修改内容为1 -> git add -> 第二次修改内容为2 -> git commit
提交的结果是1,因为第一次修改后添加到了缓存区,commit提交的是缓存区,第二次修改是工作目录,没有添加
6.2 撤销修改
每次版本回退会把所有内容都回退,如果只是要回退一个
git checkout -- readme.txt
撤销的是本地仓库的修改,工作区的并没有变
6.3 删除文件
从工作区删除文件
rm 1.txt
从暂存区中删除文件
git rm 1.txt
从版本库中删除文件
git commit -m "remove 1.txt"
工作区的可以直接删除硬盘上的文件
暂存区的可以再次add相同文件覆盖
版本库(本地仓库)上的东西一般不会删
远程仓库
git clone支持https和git(即ssh)两种方式下载源码,这里只介绍ssh方法
1.配置用户名和邮箱
可以先输入git config --global --list
查看是否配置
user.name是用户名,一般建议和github(gitee)上的相同
uer.email是邮箱,必须和github(gitee)上的相同
选中的两行如果确定没问题就是已经配置了,可以下一步
若未配置则可以输入下列代码
git config --global user.name "这里换上你的用户名"
git config --global user.email "这里换上你的邮箱"```
2.生成ssh
输入下列代码生成公钥和密钥
ssh-keygen -t rsa -C "这里换上你的邮箱"
上面的图就是生成成功了
打开计算机的下列路径C:\Users\你的用户名\.ssh
3.配置ssh
选择有pub后缀的打开,将里面的内容复制
打开github(gitee)的设置
点击左侧ssh,点击添加ssh
title:这个ssh的名字
key type:ssh的类型是公钥还是密钥
key:把刚刚复制的粘进去就行
点击下方的Add SSH key
即可添加
4.添加远程仓库
用代码添加
git remote add origin 远程仓库地址
在idea中添加
提交代码到暂存区
完成上述步骤1之后,本地文件会显示为红色,表示这些文件未加入至暂存区,这里可以进入Git面板或者使用快捷键Ctrl+Alt+A将显示为红色并且需要提交的文件提交到暂存区
加入到暂存区之后,文件颜色状态由红色变成绿色
idea项目文件会出现不同的颜色
-
红色 没有加入到git暂存区
-
绿色 加入暂存区,没有提交
-
蓝色 做了修改,没有提交
-
白色 完成提交,是最新的
点击idea右上角的绿色的√或者使用快捷键Ctrl+K,新增提交信息
编辑好提交信息后,点击commit后面的三角,选择commit and push直接提交到远程仓库
在弹出的对话框中,默认选中第一个添加作为首要的远程仓库,然后点击push按钮完成推送到远程仓库,若没有可以直接添加远程仓库
添加完成后即可push,可以去网站上查看