这是我参与8月更文挑战的第31天,活动详情查看:8月更文挑战
GIT 分支
-
git分支,就是我们自己把我们的整个文件夹分成一个一个独立的区域 -
比如我在开发 登录 功能的时候,可以放在
login分支下进行开发- 开发 列表 功能的时候,可以放在
list分支下进行开发 - 大家互不干扰,每一个功能都是一个独立的功能分支
- 开发 列表 功能的时候,可以放在
-
这样开发就会好很多
-
git在初始化的时候,会自动生成一个分支,叫做master -
是表示主要分支的意思
-
我们就可以自己开辟出很多独立分支
-
开辟一个分支使用
git branch 分支名称指令# 开辟一个 login 分支 $ git branch login -
查看一下当前分支情况
# 查看当前分支情况 $ git branch
-
会看到,当前有两个分支了
-
一个是
master,一个是login -
前面有个
*号,并且有高亮显示的,表示你当前所处的分支 -
我们对 登录 功能的开发要移动到
login分支去完成 -
我们切换所处分支使用
git checkout 分支名称# 切换到 login 分支 $ git checkout login -
然后我们在整个分支上进行 登录 功能的开发
-
开发完毕以后,我们就在当前分支上进行提交
-
提交以后我们进行分支切换
- 发现
master上面还是最初始的状态 - 而
login分支上有我们新写的 登录 功能的代码
- 发现
-
我们按照分支把所有功能都开发完毕了以后
- 只要把所有代码都合并到
master主分支上就行了
- 只要把所有代码都合并到
-
git的合并分支,只能是把别的分支的内容合并到自己的分支上 -
使用的指令是
git merge# 切换到 master 分支 $ git checkout master # 把 login 的内容合并到自己的分支 $ git merge login -
这个时候,我们刚才在
login上开发的东西就都来到了master主分支上 -
如果是有多个分支的话,那么所有的最后都合并到
master分支上的时候 -
我们的主分支上就有完整网站的所有页面
- 各个分支上都是单独的页面和功能
-
这个时候我们开辟的分支就没有什么用了,就可以删除分支了
-
先切换到别的分支
-
使用指令
git branch -d 分支名称来删除# 先切换到别的分支 $ git checkout master # 删除 login 分支 $ git branch -d login
-
常用的分支命名
- 我们的分支命名也要规范一些
- 我们有一些分支名称大家都默认是有特殊意义的
- 比如我们之前的写的
login分支就是不规范的分支名称- 而且也是不规范的分支操作
- 常见的分支名称
- master:主分支,永远只存储一个可以稳定运行的版本,不能再这个分支上直接开发
- develop: 主要开发分支,主要用于所用功能开发的代码合并,记录一个个的完整版本
- 包含测试版本和稳定版本
- 不要再这个分支上进行开发
- feature-xxx:功能开发分支,从
develop创建的分支- 主要用作某一个功能的开发
- 以自己功能来命名就行,例如
feature-login/feature-list - 开发完毕后合并到
develop分支上
- feature-xxx-fix: 某一分支出现
bug以后,在当前分支下开启一个fix分支- 解决完
bug以后,合并到当前功能分支上 - 如果是功能分支已经合并之后发现
bug可以直接在develop上开启分支 - 修复完成之后合并到
develop分支上
- 解决完
- hotfix-xxx: 用于紧急
bug修复- 直接在
master分支上开启 - 修复完成之后合并回
master
- 直接在
GIT 推送
- 我们的所有内容已经全部保留在了本地历史区
- 理论上是不会丢失了
- 但是如果把文件夹删除了,还是没有了
- 所以我们要使用
git把我们所有的内容推送到github上面保存起来 - 那么就本地文件夹就算删除了,那么远程上面还有一份,还可以拿回来使用
- 所以我们现在就要把本地内容推送到远程
- 这个时候我们接需要一个
github的账号了 - 先去 github官网 注册一个账号
开辟一个远程仓库
-
有了
github账号以后 -
我们就登录
github网站,开辟一个远程仓库 -
github的远程也是以一个仓库一个仓库的形式来保存代码- 我们可以在一个
github上保存很多的项目 - 只要一个项目一个仓库就可以了
- 我们可以在一个
-
按照下面步骤开辟仓库
- 先点击新建仓库
- 按照要求填写内容
3. 出现下图表示创建仓库成功
- 现在我们的远程仓库建立完毕了,我们就要把我们的项目代码整个上传了
添加仓库地址
-
接下来,要使用
git上传代码了 -
我们先要告诉
git上传到哪里 -
也就是给
git添加一个上传的地址 -
我们还是来到我们的项目文件夹
-
使用
git remote add origin 仓库地址来添加# 在项目文件夹下打开 git base # 添加仓库地址 $ git remote add origin https://github.com/guoxiang910223/ceshi1913.git- remote:远程的意思
- add:添加的意思
- origin:是一个变量名(就是指代后面一长串的地址)
上传
-
上传到哪里的地址我们已经添加好了
-
接下来就是上传内容了
- 上传要保证 历史区 里面有内容
- 上传的过程会把 历史区 里面所有的内容上传到远端
-
我们使用
git push指令来上传# 上传内容 $ git push -u origin master # 表示把内容上传到 origin 这个地址 # master 是上传到远程的 master 分支-u是我们第一次的使用用到了,是为了记录一下用户名和密码- 下次上传的时候就不需要再写了
-
第二次上传
-
第二次上传的时候,因为有刚才的记录,就不需要再写
origin和master了 -
会默认传递到
origin这个地址的master分支上 -
除非你要传递到别的分支上的时候再进行书写
# 第二次上传 $ git push
-
-
到这里,就完成了一次
git推送 -
这个时候本地的文件夹就真的可以删除了
-
因为远程有一份我们的内容,本地的删除了,可以直接把远程的拉回来就行
GIT 克隆
-
git克隆是指把远程仓库里面的内容克隆一份到本地 -
可以克隆别人的 公开 的仓库,也可以克隆自己的仓库
-
克隆别人的仓库,我们只能拿下来用,修改后不能从新上传
-
克隆自己的仓库,我们修改后还可以再次上传更新
-
我们先找到一个别人的仓库,或者自己的仓库(这里以 jQuery 的仓库为例)
-
复制好地址以后,选择一个我们要存放内容的文件夹(我这里以桌面为例)
-
直接在想存放内容的位置打开
git base -
输入克隆指令
git clone 仓库地址# 直接克隆仓库 $ git clone https://github.com/jquery/jquery.git -
等待一段时间
-
你就会发现你的文件夹里面多了一个叫做
jquery的文件夹 -
里面就是人家仓库的所有内容
GIT 下拉
-
不管是你克隆下来的仓库还是别的方式弄得本地仓库
-
当人家的代码更新以后,你想获得最新的代码
-
我们不需要从新克隆
-
只要拉取一次代码就可以了
-
直接在项目文件夹里面使用指令下拉
# 拉取远程最新代码 $ git pull -
这样一来,你本地的仓库就可远程的仓库同步了
GIT 冲突
-
git冲突是指在我们的上传过程中 -
本地的版本和远程的版本不一致导致的
-
这个时候只要先使用
git pull拉取回来- 让本地和远程保持一致
-
然后再从新上传就好了
-
但是
git pull相对不安全,因为会自动和本地内容合并