前言
首先我们知道git给我们提供了分支管理的功能
我们一般使用master分支作为线上环境,master分支一般是一个稳定的分支
我们通常是会创建一个其他分支进行开发,这样不会影响线上的机器运行
如果没有git提供这样的分支功能,就无法做到这一套了
指令学习
假设软件出现问题咋办?
我们难道直接在master分支上进行修复嘛
这样是不对的
我们通常会在master分支上开一个解决问题的分支
然后让解决问题的分支合并master分支,再让master分支合并解决问题的分支
最终删除解决问题的分支即可
那我们如果不想在master分支上看到其他的分支的修改咋办
只需切到其他的分支
然后将工作区进行保存即可
这里使用
git stash
注:这里只能将git管理的文件进行储存
修复bug分支的合并
git merge --no-ff -m "message" git pop stash //将存储区的放出来
这里的--no-ff的解释
强制删除分支
git branch -D 分支名 这里如果使用 -d 就得先合并再删除 场景就是假设领导让你开发了一段时间又把这个功能砍掉了
名称解释
PR:(pull request)提交代码审核表 给领导技术人员等进行审核
issues:一般是发现bug提交使用的 测试人员发现这类bug可以指定开发人员进行解决
克隆仓库
git clone 网址
注意不能在本身就是远程仓库的本地仓库中执行
远程仓库的默认名称是origin
查看远程仓库
git remote -v
这里还有一个ssh的方式是通过公钥和私钥进行加密的
所以对应的本地仓库也得有这两个文件
推送
如果已经将分支进行绑定 直接使用 git push 即可 不然使用 git push origin master:master
拉取操作
git pull origin master:master
忽略操作
增加一个.gitignore文件即可 里面只要包含类似于 *.so文件即可忽略 某个文件不想忽略即可使用 !x.so来防止忽略
别名设置
git config --global alias.st ststus 这里就可以使用st代替status了
标签管理
tag -> 对某次commitId的一次标识 比如v1.0 可以对版本进行回退 git tag v1.0 git tag -a v0.9 -m "描述 " commitId 查看某个标签的描述 git show v0.8 删除标签 git tag -d v1.0 推送标签 git push origin v1.0 一次性推送标签 git push origin --tags 更新远端 git push origin :v1.0
实战场景
查看分支和远程的连接关系 git branch -r 本地和远程都查看 git branch -a 希望追踪远程关系 git checkout -b dev origin/dev 创建时和远程分支链接 查看远程分支之间的连接关系 git branch -vv 后来建立连接 git branch --set-upstream-to=origin/dev dev
假设现在两个人开发同一个文件
a 给file文件加了一个aaa
b 给file文件加了一个bbb
存在先后关系的话
开发提交之前得先在本地进行冲突解决
然后提交PR给对应领导查看
注意还是先用dev merge master
再用master merge dev 最后提交
我们发现这种使用一个分支的开发方式太麻烦了
所以我们也可以让一个资源私有一个分支
本地创建分支推送给远程和用远程直接创建都是可以的
这里推荐使用远程创建
因为这样能保证本地分支是最新的
使用 git push origin feature-1 这里就可以在远端新增一个远程分支成功了
假设这里b生病了
a得在他的项目继续开发
开发完还是使用老样子进行merge
最后介绍一下git -flow模型
这里主要是由五个分支来组合
master分支 主分支 对应生产环境
feature分支 对应开发环境
develop分支 一般是featrue分支合并上去的 是用来开发测试使用
release分支 测试使用的分支 一般是测试环境 也是基于develop分支
hotfix分支 紧急需要修复的分支 一般是master分支作为基础创建的