一、 什么是git?
1.直接来说:git是一个分布式的版本控制工具
其中分布式是git的一个特点 说到分布式相对应的还有集中式,下面就以git和svn为例说下分布式和集中式两者的区别。
-
1.分布式:在网络不好的情况下,不受影响,只要下载到本地后 , 可以暂存到本地仓库,等网络好的情况下再push到服务器, 这样每个电脑都可以看作是一个独立的服务器, 不受互相的影响。例如:git
-
2.集中式:只有一台中心服务器,用来连接多台设备,所有的上传下载都要经过中心服务器, 如果网络不好或者服务器问题就会影响正常的使用。 例如:svn
二 、如何使用git?
1.安装git客户端
git的下载地址:http://git-scm.com/download/。
Git支持多平台(Mac OS X/Windows/Linux/Solaris)
2.注册github或者gitee的账号
(1) GitHub来说更国际化,使用也是最多的,但是因为在国外网站,所以来说登录使用GitHub时不太友好。
(2) GitEe是国内的git仓库,相对于GitHub来说,功能和使用方法基本一致,比起GitHub操作更快,更容易访问。
3.建立连接,配置密钥
本地Git与GitHub服务器之间保持通信时,。使用SSH key认证方式来保证通信安全,所以在使用GitHub前你必须先建创自已的SSH key。
1.在Git Base Here中输入 :ssh-keygen -t ed25519 -C "你的邮箱名@xxx.com" 来获取你的密钥,
输出的地址是密钥存放的地址,其中密钥:id_rsa 公钥:id_rsa.pub,只需要复制你的公钥即可。
2.打开你的GitHub中密钥生成,把你的密钥添加到github中即可,就可以通过GitHub的地址链接进行上传下载
三 、git的上传和拉取
1.简单的通过本地初始化上传文件到GitHub的命令行操作
(1).创建新的文件夹在文件夹的Git Base Here中初始化文件夹。
初始化命令:git init
初始化后的文件夹中会多出一个.git的文件,如果没有去打开文件的隐藏文件显示。
(2).在当前文件中把每次上传的内容添加文件到暂存区。
添加到暂存区命令行: git add '你要上传的文件名'
或者通过全部添加命令行直接添加:git add .
(3).然后将每次上传的文件再提交到本地仓库。
添加到本地仓库命令行:git commit -m '这里是对于本次提交的说明'
(4).提交到远程仓库(也称代码托管平台):github、码云、gitlab,这里使用GitHub。
提交到远程仓库的步骤:
第一步:创建一个远程仓库,点击登录后右上角的+,按步骤完成即可
注意:
远程要定要配置好公钥/密钥
ssh-keygen -t ed25519 -C "你的邮箱名@126.com"
密钥:id_rsa 公钥:id_rsa.pub
测试是否连接成功:ssh -T git@github.com
第二步:配置要连接的远程仓库地址
配置地址命令行:git remote add 仓库名称 远程仓库地址
例如:git remote add origin git@github.com:w3cteching/05Epro.git
第三步:再推送到远程
推送到远程仓库命令行:git push 仓库名 本地分支名
例如:git push origin master
***注意:如果远程没有master分支,push以后则会在远程仓库创建一个新的masrer分支,如果要把内容添加到远程仓库已有的分支则输入命令行:git push 仓库名 本地分支名:远程分支名 ,前提是先要把远程分支内容拉取到本地才可以添加到远程分支上。
通过上面的命令行就可以把文件上传到远程仓库 可以在远程仓库中查看是否添加成功。
2.把远程仓库的内容拉取到本地仓库
只拉取到本地,不合并分支
拉取命令行:git pull 仓库名 远程分支名 --allow-unrelated-histories
其中:allow-unrelated-histories代表允许不相关的历史记录
四 、历史回退
1.查看提交历史记录
(1).详细查看历史记录命令行:git log
(2).缩略查看历史记录命令行:git log --pretty=oneline
(3).查看所有的提交commit_id的命令行:git reflog --pretty=oneline
2.回退到过去或者现在
(1).回退到过去的命令行:git reset --hard commit_id
注意:因为历史记录是从上到下是从近到远的操作,回退后历史记录回从上消失
五、分支管理
1.分支的作用
方便团队之间协作开发,分支之间的代码互不影响
git init 初始化完后,默认本地只有一个分支 master
2.一般前端开发项目分支结构
master:主分支,这个分支上不做项目开发,用于发布产品的分支
dev:开发分支
hotfix:调度bug的分支
feature:开发新功能的功能
成员分支:例如:姓名_功能
3.分支常用命令
1.查看分支:git branch
例如:
main
* master //分支前带*,当前要操作的分支
2.创建分支: git branch 新分支名
3.切换分支: git checkout 要切换的分支名
4.自动创建并分支:git checkout -b 要创建和切换的分支
5.合并分支:git merge 要合并的分支
注意:如果多人修改同一个文件,出现冲突,先解决冲突(采用当前的,采用传入,两者都保留),再add,commit
6.分支提交到远程
git push origin 要提交的分支名
7.删除分支
(1)删除已经合并过的分支
git branch -d 要删除的分支名
(2)删除未被合并的分支
git branch -D 要删除的分支名
(3)删除远程分支:
git push origin :要删除的分支名
六、克隆(clone)仓库
git clone 远程仓库地址
例如: git clone git@github.com:vuejs/vue.git
克隆是相对方便快捷的操作方式可以直接把远程的仓库内容克隆到本地然后进行开发和上传,克隆的方式的本地仓库默认绑定设置了克隆的那个地址不需要重复设置。
七、前端团队一般的git协作方式
第一步:组长先克隆远程仓库
git clone 组长给的仓库地址
第二步:组长克隆完进入仓库文件夹,写公共代码,再add,commit,最后push到刚才的仓库上
第三步:组长将组员添加到《仓库成员管理》中,注意:权限用开发者权限
第四步:组员第一次克隆组长仓库,然后在本地创建好dev和自己名称的分支
第五步:组员切换到自己名称的分支上,然后编写自己负责的代码,再git push origin 自己分支名到远程仓库
第六步:另一个组员操作同上面的组员,只不过如果需要上面组员的代码,必须将那个组员分支git pull自己的分支下
八、git可视化操作
1.git bash 命令行操作
2.git GUI 可视化操作,或称图形图面操作
九、git仓库的打版本
1.查看版本
git tag
2.打版本
git tag 版本号
3.删除版本:
本地删除:git tag -d 版本名
远程删除:git tag :要删除的版本名
4.推送版本:git push origin 版本名
版本号格式:vxx.xx.xx