一.Git简介
Git是一个版本控制的工具,我们可以把每天的工作代码放到Git上,同时Git的特点是分布式的,可以搭建集群,以保证一个Git宕机,导致数据丢失,可以实现本地提交,避免网络问题造成不可使用的状况
SVN和Git的区别
1.SVN是集中式的版本控制,
2.Git是分布式的版本控制系统,每个人的电脑就是一个完整的版本库
版本控制工具分类
1.集中式版本控制工具
CVS,SVN等,这类工具是大家在修改代码的时候先更新最新的代码.然后将自己的代码添加进去.提交更新 这种思想的核心就是所有程序员修改的都是放在中央服务器上的同一套代码..
缺点:单点故障,如果中央服务器宕机,那么所有人都无法提交代码.代码系统就崩坏了
2.分布式版本控制
Git ,每个人本地都有一套完整代码,可以在本地做版本控制. 避免了单点故障影响开发
Git的工作机制
工作区就是本地磁盘上存储代码的位置.暂存区是写好代码通过git add 存放的地方(可以删除),本地库是通过git commit提交.会产生历史版本
Git代码托管中心:基于网络服务器的远程代码中心,一般称为远程库
局域网:Gitlab
互联网:GitHub .Gitee
Git的安装
下载地址:https://git-scm.com/download/win
默认设置,无脑下一步,详情见GitLab-尚硅谷教程
Git常用命令
git rm --cached hello.txt 删除暂存区的代码
git commit -m "提交信息" 提交代码
在最初要设置用户名和邮箱,作用是在后续代码提交知道是谁更改了代码
查看历史版本
1)基本语法
先查看历史版本信息 git reflog
回退版本:复制对应的版本号,执行命令git reset --hard 版本号
Git分支
概念:在不影响代码运行的情况下,独立进行开发,不影响其他分支.
分支的操作
分支合并
1.正常合并,添加代码:直接先切换到master分支,然后在调用git merge 分支名
2.冲突合并:master和别的分支都对同一文件进行操作,合并时不知道文件该保存哪个分支的,所以出现冲突.
这时候需要对文件进行手动修改,将修改后的文件进行add,commit,这时候commit不要跟文件名
Git的结构
Head指向分支,分支指向版本
Git代码托管中心
1.GitHub
官网:GitHub: Let’s build from here · GitHub
创建新的远程库
GitBash上的远程库相关操作
查看远程库的别名
git remote -v
修改远程库的别名
git remote add git-demo1(别名) https://github.com/bozai110/Git-demo1.git(远程库链接)
推送代码
git push 远程库名(链接或者别名) master(分支)
代码拉取
git pull 远程库名(链接或者别名) master(分支)
克隆代码
git clone https://github.com/bozai110/Git-demo1.git
克隆代码作用:1.拉取代码2.初始化本地仓库 3.取好别名origin
GitHub团队开发
团队开发需要将开发人员加入到一个组里才能协同开发,进行代码推送pull
跨团队协作开发
查找到别人的代码,然后fork到本地
将代码克隆到本地后,进行修改,之后需要pull request,相当于把自己改的代码发送给它的团队
SSH免密登录
在gitBash下执行该命令,然后敲击三次回车键,就会生成一个目录
在这个文件下面生成公钥和私钥,将公钥复制到gitHub上的ssh设置,
公钥添加成功
IDEA集成Git
1.环境配置
除掉无用的文件
.例如.idea下的xml ,这些文件和项目部署无关
怎么忽略这些文件
创建忽略文件git.ignore
在用户目录下创建git.ignore
然后在git.config文件中引用此文件
IDEA设置定位git
IDEA继承Git主要操作依旧是add,commit,push,pull主要是图形化界面使得操作更加便捷
IDEA集成GitHub
通过口令登录 (需要在GitHub上设置口令)
然后在gitHub上设置口令
push之前一定要先pull!!!!因为一定要在最新版本的代码基础上才能推送本地现有的代码,这样才有意义,不然把别人新更新的代码给覆盖了
国内代码托管中心 Gitee--码云
Gitee操作基本与GitHub相同,而且速度很快.同时Gitee支持通过http连接直接从gitHub仓库中导过来
企业代码托管中心---GitLab