2.1 git是什么
-
git是分布式版本控制工具,可以管理项目代码,团队协作开发
注意:版本指的不是文件,指的是【修改】!!!!!
分布式:不依赖于某个服务器,可以单独在某个电脑上操作
集中式:所有电脑或终端都依赖于某个中心服务器,如果中心服务器宕机了,则整个网络瘫痪了
-
工作方式:命令行和GUI图形界面方式【软件操作】
-
版本控制工具:git和svn
git:分布式
svn:集中式,软件:小乌龟图标
2.2 git环境
-
官方下载地址:查看这里
-
安装
-
运行
电脑空白处右键--选择git bash--打开命令行(就是一个黑窗口)
3.3 git常用命令
-
查看电脑用户名和邮箱是否配置
git config --list
-
配置用户名
git config --global user.name '用户名'
-
配置邮箱:
git config --global user.email '2109A@126.com'
-
初始化git
git init
-
查看git状态
git status
-
添加到暂存区
git add 要添加的文件名
-
提交到本地仓库分支
git commit -m '要提交的说明' 例如:git commit -m '创建了index.html和index.js文件'
-
查看日志
git log
-
xx
3.4 git推送远程
连接到远程仓库:git remote add origin 远程仓库地址
推送到远程仓库:git push -u origin master
删除远程仓库名称: git remote rm origi
2.1 版本回退
-
查看要回退的日志
git log --pretty=oneline git reflog 查看所有的提交id
-
commit到本地分支历史回退
git reset --hard 要回退的commit_id
-
工作区的回退
git checkout -- 要放弃的工作区文件
-
暂存区的回退
第一步:从暂存区回退到工作区 git reset HEAD 要回退的文件名 第二步:再从工作区直接放弃已修改的内容 git checkout -- 要放弃的工作区文件
2.2 分支管理
在git中,团队协作主要是通过分支来完成的
分支常用命令:
-
查看分支
git branch
-
创建新分支
git branch 新分支名 例如:git branch dev
-
切换分支
git checkout 要切换的分支名 //注意 分支前有星号,代码是当前分支
-
创建好新分支并立即切换到新分支
git checkout -b 新分支名
-
合并分支
git merge 要合并的分支
-
删除分支
git branch -d 要删除的分支名 //删除合并过的分支 git branch -D 要删除的分支名 //删除未合并过的分支
-
如何将本地分支推送到远程仓库中
git push -u origin 要推送的分支名
-
如何删除远程分支
git push -u origin :要删除的分支名
2.3 多人同时修改同一个文件出现冲突,如何解决?
解决步骤:
-
分析合并之前的代码,是要当前,传入的,两个都要,还是比较后做决定
-
分析完,然后确定采用哪种
-
git add ,git commit
2.4 tag管理【了解】
主要用于发布项目版本,可用于下载
-
查看版本
git tag
-
创建版本
git tag 版本号 //基于最近提交创建版本号 git tag 版本号 commit_id //基于某个提交id创建版本 版本号:v1.0.1 主版本号【底层构架改变】.次版本号版本【添加新功能】.修复bug版本
-
删除版本
git tag -d 要删除的版本号
-
推送版本
git push origin 要推荐的版本号
2.5 代码托管平台-码云【国产】
码云官网,看这里
-
注册码云帐号
-
登录码云
-
添加公钥到码云设置--ssh中
-
创建一个新仓库
-
将本地代码推送到码云新建的仓库中
-
连接码云仓库
git remote add 远程仓库名 远程仓库地址 例如:git remote add myku git@gitee.com:w3cteching/goods_admin_2109.git
-
推送码云指定仓库
git push -u 远程仓库名 要推送的分支名
-
2.6 可视化操作
可以通过软件窗口配合鼠标的形式来玩转git!!!!
可视化操作工具:
编辑器内置git工具 例如:vs code
第三方git可视化工具 例如:sourcetree
2.7 git团队协作开发
第一步:创建一个团队远程公共项目仓库
第二步:将成员拉进公共项目仓库
第三步:将别人的公共仓库克隆到本地
git clone 别人的远程仓库地址 例如:git clone git@gitee.com:w3cteching/goods_admin_2109.git
第四步:将组员在属于自己的分支上写好的代码推送到组长指定分支下
wangaombo分支---推送到组长的wangaobo分支下
wangsaimbo分支---推送到组长的 wangsaimbo分支下
wangwenije分支---推送到组长的 wangwenije分支下
第五步:组长把线上的所有组员的分支代码拉到组长电脑本地
组长在自己的项目下将对应的组员分支创建好,并拉取远程组员的分支到对应的组员下
拉取:
git pull 即拉取也合并
git fetch 只拉取不合并
第六步:组长检测组员分支代码没有问题后,再跟dev和master分支合并
第七步:最终将整合的master代码整体推送到远程码云master分支上