1.git介绍
1.1 git能做什么
-
作用:团队开发,==git是一个版本管理工具,用来管理代码的==,不是开发软件
-
好处:快速、优雅、高效管理版本代码
1.2 主要作用(代码管理工具,管理代码版本)
-
版本的概念
(1)初指一种书籍经过多次传抄、刻印或以其他方式而形成的各种不同本子。随着时代的发展,版本也开始应用于影视、软件等事物上,形容事物相同但介绍方法等不同的两个事物。
(2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。
(3)软件名称后面经常有一些英文和数字,如:CTS3.3.5、QQ 2021 Beta,这些都是软件的版本标志,通过它,我们可以对软件的类型有所了解。
各版本的时间轴演变,每一次版本的改变,都会有功能的改变
v1.0.0 :内测
v2.0.0 :用户
v2.1.0 : 更新,修改了bug
-
版本管理
-
早期管理方式
问题:传统管理方式造成了本地电脑上有很多相同的文件,不容易维护,造成了非常混乱的局面。
-
版本控制软件
-
常见的版本控制软件:git svn
-
好处:使用版本控制以后,只需在本地保存一份,各个版本由版本控制软件来进行管理
-
-
2.git的简介
2.1 git定义
==Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。==
2.2 git特点
-
==管理版本代码==
-
==项目越大,越复杂,git优势越明显==
2.3 git三个区域
-
工作区 ----写代码
-
暂存区--功能完成了
-
仓库区--页面完成了,功能完成了,代码提交到仓库
3.git的使用
3.1 下载安装
-
下载网址
-
Git :官网,国外,速度很慢
-
CNPM Binaries Mirror:淘宝镜像
-
-
安装
-
双击软件---一直下一步(==不要有中文==)
-
检查是否安装成功
-
任意位置右击出现下图
-
-
-
配置用户信息(安装git后配置一次即可,识别用户)
-
任意位置右击--> Git Base Here
git config --global user.name 用户名 git config --global user.email 邮箱 git config --global user.name txf git config --global user.email 375581141@qq.com
-
查看是否配置成功
1.通过命令查看: git config --list 2.直接在文件夹中查看 c盘-->用户-->admin -->.gitconfig [user] name = txf email = 375581141@qq.com
==3.2 步骤==
-
初始化项目
-
创建项目文件夹(创建一个)
-
进入项目文件夹右击,---> Git Base Here
-
执行命令:==git init==,当前文件夹会生成一个==.git==文件
-
==注意:.git默认会变成隐藏文件==
-
-
工作区--编写代码
-
创建一个index.html文件,写一些代码
-
-
把工作区的代码存储到暂存区
git add 文件名
-
把暂存区的内容添加到仓库
git commit -m 提交信息
==3.3 git 命令==
-
==init:初始化当前项目文件夹==
git init
-
==add:将文件添加到暂存区==
git add 文件名 git add .(提交这个项目文件中所有更新的文件)
-
==commit:将暂存区的文件提交到仓库==
git commit -m 提交信息(文字说明)
-
status:查看仓库文件状态
git status
-
log : 打印版本信息
git log : 以完整的形式输出 git log --oneline : 以简短的形式显示
-
==reset : 回退版本(新版本有问题,改需求)==
git reset --hard 回退版本号
-
reflog:显示所有的版本操作
git reflog : 以完整的形式输出 git reflog --oneline : 以简短的形式显示
-
==clear:清屏==
==3.4 文件忽略==
-
对于不需要进行版本管理的文件,可以使用文件忽略(node_modules,一些公共库的代码)
-
文件忽略步骤
-
创建一个==.gitignore==文件 (一定要和.git文件同级)
-
在忽略文件中配置忽略信息
/js/ : 忽略整个文件夹 /js/log.js :忽略某个具体的文件 *.txt : 忽略这类型的文件
-
3.5 分支
3.5.1 分支介绍
-
介绍:
git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。默认只有一个分支为master主分支。
-
什么是主分支?
在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支
-
主分支的问题:
在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验和效率,建议每个开发者都基于分支进行项目功能的开发
-
分支解决的问题:
用来保存和记录整个项目已完成的功能代码。但是不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃
==协议上规定:不应该在master主分支上维护代码 。应该在主分支的基础上,创建分支然后维护代码==
-
补充说明:
在分支上的提交操作和主分支的提交操作命令一样。
3.5.2 分支相关命令
-
branch:查看当前git管理的项目中有那些分支
git branch
==注意:提交过一次以后才能看到主分支==
-
branch : 创建分支
git branch 分支名
-
checkout:切换分支
git checkout 分支名
-
==注意:第一次切换到分支进行操作的时候,master主分支上的提交会复制一份到分支上==
-
-
merge:合并
-
==注意:一般会回到主分支进行合并==
git merge 分支 git merge 分支1 分支2
-
3.5.3 冲突解决
-
什么时候会冲突
-
两个不同的分支,对同一个文件进行了修改,git无法判断合并
-
-
手动解决(删除)
-
两个都要,把错误提示删了,在master上重新提交一次
-
只要一个,衡量删那份,在master上重新提交一次、
-
练习步骤:
1.创建项目,在主分支上提交一次,查看有多少分支
2.根据需求,创建两个分支xgk-登录 ln-注册、
3.查看有多少分支
4.切换到xgk分支,实现业务逻辑-登录 提交代码(看下初始代码都有啥)
5.切换到ln分支,实现业务路径-注册,提交代码(看下初始代码都有啥)
6.合并分支
7.切换到xgk 和 ln 分支,都操作一下index.html 文件
8.回到主线上合并
9.解决合并冲突
==4.远程仓库==
-
介绍
Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。 就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。
-
远程仓库分类:
-
github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响
-
==gitee:gitee是一个基于git的代码托管平台,在国内较多(码云)==
-
公司自己部署:了解即可,不是前端人员部署的,使用步骤和命令都一样
-
4.1 操作流程
-
注册账号 -- 绑定邮箱
-
填写注册信息
-
创建仓库(如果这个项目还没有启动,需要你从无到有)
-
在本地创建项目文件 --完成提交操作
-
提交到远程仓库 ==git push 远程仓库地址 master==
-
==现在默认创建的仓库都是私有的,转成公有==
4.2 git 命令
-
==clone:克隆(使用一次,项目第一次下载的时候用)==
git clone 远程仓库地址 git clone https://gitee.com/xintt09/xiaousc.git
-
==pull:拉取(下载远程仓库中更新的文件)==
git pull 远程仓库地址
-
==push:提交(将本地的文件提交到远程仓库)==
1.git push 远程仓库地址 master 2.git push 别名 master git push -u 别名/远程仓库地址 master -u以后,后面再往这个远程仓库提交,直接git push 3.git push
-
remote : 起别名(给远程仓库起别名)
git remote add 别名 远程仓库地址
-
remote -v : 查看本地仓库别名是否跟远程仓库进行了关联
git remote -v
4.3 新员工进公司操作流程
-
进公司--领电脑--装软件 git,配置用户信息
-
下载公司项目代码 (git clone)
-
写代码,改代码(git add ,commit)
-
下班了/功能完成了,将代码提交到远程仓库 git push
-
第二天上班:git pull 更新最新代码
-
。。。
5.ssh访问
-
简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。
-
SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。
-
SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。
-
生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击3 次回车
相关命令
ssh-keygen
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ssh-keygen -t rsa -b 4096 -C "1583222344@qq.com"
-
查看生成的密钥
-
将公钥添加到远程仓库中
-
后期使用远程仓库地址就可以使用ssh地址,不需要再输入账号和密码
6.git 和 svn的区别
SVN:SVN是一个开放源代码的集中式版本控制系统,用于多个人共同开发同一个项目,实现共享资源。集中式版本控制系统:版本库是集中存放在中央服务器,开发者需要先从中央服务器获取最新的版本文件,然后开始干活,最后再把自己修改的文件推送到中央服务器。
Git:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,联网开发不是必须的。但两两开发者之间肯定不会以qq或U盘形式传送,也有一台充当“中央服务器”的电脑(gitee和github)。此服务器的作用仅是用来方便“交换”各开发之间的修改。
-
svn:==集中式的管理系统==,完整的版本只存在中央处理中,==本地电脑是没有完整版本==,每一次都需要先下载,必须==有网才能开发==,一般内网访问
-
git:==分布式管理系统,每个开发人员电脑都有一个完整版本===,没有网也也能开发,仅用来方便交换各开发直接的修改