版本控制

 

版本控制用于在开发过程中管理我们对文件、目录、工程等内容的修改,方便查看更改历史记录,备份以便恢复以前的版本,版本

主流的版本控制工具有: git、svn、cvs、vss、tfs、rcs


 

Git和SVN的区别

 

本地版本控制

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

集中版本控制

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

分布式版本控制

所有版本信息仓库全部同步到本地的每个用户,用户可在本地查看所有版本历史,也可以离线在本地提交,只需在联网时push到相应的服务器或其他用户那里。优点: 由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题,那么就可以恢复所有的版本数据。例如git

Git和SVN最主要的区别

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

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


 

Git下载配置

 

git下载:

git安装:

git卸载:

git使用:


 

Git基本使用

 

git基本命令:

在哪个目录右键打开Git Bash,那么这个目录就是git的当前目录


 

Git必要配置

 

删除已设置的用户名、邮箱:


 

Git工作原理

 

工作区: 就是你平时存放项目代码的地方

暂存区: 用于临时存放你的改动,事实上就是一个文件,保存即将提交到文件列表信息

本地仓库区: 就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

远程仓库区: 托管代码的服务器(例如GitHub、Gitee,Gitee也叫码云),可以简单理解为是你项目组中的一台电脑用于远程数据交换

 

git有四个工作区域: 工作区、暂存区、本地仓库区、远程仓库区

工作流程: 工作区 -> 暂存区 -> 本地仓库区 -> 远程仓库区

工作流程: 工作区 <- 暂存区 <- 本地仓库区 <- 远程仓库区

 

1、在工作区,使用如下命令,可以把文件放到暂存区

2、在暂存区,使用如下命令,可以把文件提交到本地仓库区

3、在本地仓库区,使用如下命令,可以把文件提交到远程仓库区

 

1、在远程仓库区,使用如下命令,可以把文件拉取到本地仓库区

2、在本地仓库区,使用如下命令,可以把文件拉取到暂存区

3、在暂存区,使用如下命令,可以把文件拉取到工作区


 

Git项目创建及克隆

 

创建本地仓库的方法有两种: 创建全新的仓库、克隆远程的仓库。都会在下面演示

 

第一种创建本地仓库的方法:

请联系编写者

请联系编写者

 

第二种创建本地仓库的方法:

第一步: 在GitHub或Gitee,点击并复制克隆下载链接,例如https://gitee.com/kuangstudy/kuang_livenote.git

请联系编写者

第二步: 点击Git Bash Here之后,输入如下

请联系编写者


 

Git操作命令

 

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上

 

文件的四种状态

Untracked: 未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过git add状态变为Staged

Unmodify: 文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改,而变为Modified,如果使用git rm移出版本库,则成为Untracked文件

Modified: 文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过git add可进入暂存Staged状态,使用git checkout则丢弃修改过,返回到Unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改!

Staged: 暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态执行git reset HEAD filename取消暂存,文件状态为Modified

 

操作命令

 

具体操作:

 

第一步: 找一个空目录,使用如下命令初始化该目录

请联系编写者

请联系编写者

 

第二步: 演示未跟踪状态的文件

请联系编写者

请联系编写者

 

第二步: 把当前目录的所有文件添加到暂存区,此时未跟踪状态就会变为入库未修改状态(也就是待提交状态)

请联系编写者

 

第三步: 把暂存区的文件提交到本地仓库区

请联系编写者

 


 

Git忽略文件

 

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

 

解决:

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

1.忽略文件中的空行或以并号(#)开始的行将会被忽略

2.可以使用Linux通配符。例如:星号(*)代表任意多个学符,问号(?)代表一个学符,方括号([abc])代表可选字符范围大括号({string1,string2,...})代表可选的学符串

3.如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略

4.如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此自录下,而子自录中的文件不忽略

5.如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)

 

例如:

在上传到本地仓库时,被你忽略的文件就不会参与上传。上面是在".gitignore"文件里面写的内容示例

 

例如:

请联系编写者


 

使用Gitee码云

 

1、注册登录码云,完善个人信息

2、设置本机绑定SSH公钥,实现免密登录。在电脑的用户目录下新建.ssh文件夹

请联系编写者

请联系编写者

 

3、将公钥信息public key添加到码云账户中即可

请联系编写者请联系编写者

 

4、使用码云创建一个自己的仓库请联系编写者

 

请联系编写者

请联系编写者

 

5、把创建好的仓库(一定要设置为公开),拉取到本地仓库,也就是放到你的电脑。新建一个空目录,用来存放仓库

请联系编写者

请联系编写者


 

 

IDEA提交和推送Git

 

第一步: 在idea创建一个项目

请联系编写者

请联系编写者

 

第二步: 在idea进行有关git的设置

请联系编写者

请联系编写者

请联系编写者

请联系编写者

 

第三步: 创建一个远程仓库,主要是复制SSH地址

请联系编写者

 

第四步: 把这个SSH地址作为我们提交的远程仓库

请联系编写者

 

第五步: 在项目里写点东西

请联系编写者

 

第六步: 先把整个项目提交到本地仓库

请联系编写者

请联系编写者

 

第七步: 再把整个项目推送到远程仓库

请联系编写者

 

第八步: 查看远程仓库,是否有项目提交上来

请联系编写者


 

命令行提交和推送Git

 

第一步: 创建仓库

请联系编写者

 

第二步: 把远程仓库的初始代码拉取到本地仓库

请联系编写者

 

请联系编写者

请联系编写者

 

第三步: 在本地仓库新建文件,然后推送到远程仓库

请联系编写者

 

第四步: 查看远程仓库,是否有文件提交上来

请联系编写者


 

Git常用命令速查