1,概述
Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!
哪些GIT网站?
GitHub: Where the world builds software · GitHub 全球最大的开源项目网站。
Gitee - 基于 Git 的代码托管和研发协作平台 中国最大的开源项目网站。
2,集中式VS分布式
SVN是集中式的版本控制系统,
而Git是分布式版本控制系统,
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
02【掌握】git的安装
https://git-scm.com/downloads
安装
检查安装是成功
安装完成后打开Git Bash窗口
输入git version 输出版本信息证明安装成功
配置全局身份
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
03.Git 存储流程 与常用命令
代码工作区--->执行git add --->暂存区(临时存储)--->执行git commit--->本地库(历史版本)
工作区、暂存区和本地仓库,逻辑上是本地计算机。当我们新建一个文件时,文件位于工作区,处于已修改(modified)状态,表明文件已进行了修改,但还没有提交保存;通过命令 git add 将其添加到暂存区,文件是已暂存(staged)状态,表示把已修改的文件放到下次提交时要保存的清单中;通过命令 git commit将文件放入本地仓库,文件为已提交(commited)状态,表示该文件已经被安全地保存在本地数据库中,到这一步可以说是成功生成了一个新的版本。
远程仓库用来将本地仓库上传到网络,实现备份、共享和合作。
04【掌握】文件管理-版本回退
在工作区
在版本库的暂存区
到版本库之后的回退
05【掌握】工作区和暂存区
工作区
就是我们能看到的电脑的相关目录
也就是创建文件之后没有执行任何命令的时候,那么这个文件就处理工作区
暂存区
当创建完文件使用git add 文件名1 文件名2 这之后那么这些文件就到暂存区
分支区
当使用git commit -m ‘信息’ 之后这暂存区里面的所有数据都会提交到当前分支 如master
06.【掌握】分支管理-创建与合并分支
分支的操作
创建
git branch dev
在master分支的基础上创建一个叫dev的分支
查看
Git branch查询当前仓库的的所有分支
*代表当前所处的分支
切换
Git checkout dev
切换到Dev分支
创建并切换
git checkout -b issue
合并分支
前提,是A要合并B 那么必须A主动 ,也就是必须在A的分支完成这个合并
Git merge dev
把dev合并到master上来(在master上合并)
删除
07.【掌握】使用GitHub远程仓库
远程库存配置
创建SSH Key。
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
https://github.com/
添加远程仓库
创建一个空项目
关联远程仓库
git remote add origin git@github.com:leijhArvin/hello1.git
把本地仓库master推送到远程仓库
git push -u origin master
git push -u origin dev
把本地仓库删除再从远程仓库下载
存在问题
发面只clone了master
这是因为没关联
使用git checkout -b dev origin/dev
08.【掌握】使用码云
配置sshkey
打开www.gitee.com并登陆
打开用户—设置
创建本地仓库
关联远程仓库
推送到远程仓库
更新远程仓库到本地
09.【掌握】IDEA里面使用gitee (重点)
创建一个远程的空仓库
在idea里面创建选择项目提提到本地仓库
先add
再commit
把本地仓库提交到远程仓库
更新
创建分支
可以看到所处分支
分支切换
https://www.cnblogs.com/javabg/p/8567790.html
idea合并分支,比如master分支合并dev分支,本地先切换到master分支上面,然后进行pull拉取远程仓库代码,要拉取
此时只有一个master分支
创建一个dev分支
已经切换到dev分支了
此时dev分支上有项目,我们正常开发,比如创建一个类hello.java
点击add添加,将新创建的文件添加
然后进行add,commit
再进行push
刷新远程仓库,可以看到有两个分支了
现在进行合并分支,master合并dev,
本地先切换到master
然后进行pull拉取远程仓库的分支代码
这是dev分支上的代码,已经拉取下来了,现在进行push推送
可以看到,远程仓库中master分支也有dev分支的代码,那就已经合并成功了