(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)
目录
分支
初识分支
概念:本质上是指向 提交节点 的可变 指针 ,默认名字是 master
注意: HEAD 指针 影响工作区/暂存区的代码状态
场景:开发 新需求 / 修复 Bug ,保证主线代码随时可用,多人协同开发提高效率
例如:
在现有代码上创建新分支完成内容列表业务突然需要紧急修复 Bug - 单独创建分支解决 Bug
需求:创建内容列表 content 分支,并产生 3 次提交记录
步骤:
1. 创建分支命令: git branch 分支名
2. 切换分支命令: git checkout 分支名
3. 工作区准备代码并暂存提交,重复 3 次
周星辰@˽□□ר□□□豸 MINGW64 /d/Git学习 (master) $ git branch content 周星辰@˽□□ר□□□豸 MINGW64 /d/Git学习 (master) $ git checkout content Switched to branch 'content' A day01/page/login/index.css 周星辰@˽□□ר□□□豸 MINGW64 /d/Git学习 (content) $ git branch * content master 周星辰@˽□□ר□□□豸 MINGW64 /d/Git学习 (content) $ git add . 周星辰@˽□□ר□□□豸 MINGW64 /d/Git学习 (content) $ git commit -m '7.内容页面-标题搭建' [content 83b2566] 7.内容页面-标题搭建 44 files changed, 1369 insertions(+) create mode 100644 day01/page/login/index.css 周星辰@˽□□ר□□□豸 MINGW64 /d/Git学习 (content) $ git log --oneline 83b2566 (HEAD -> content) 7.内容页面-标题搭建 b58777f (master) 1.登录页面-标签部分准备
分支-合并与删除
需求:把 login-bug 合并回到 master 分支并删除 login-bug 分支
步骤:
1. 切回到要合入的分支上:git checkout master
2. 合并其他分支过来: git merge login-bug
3. 删除合并后的分支指针:git branch -d login-bug
写完新的分支login-bug后,先切回要合入的分支上
在当前分支中合并login-bug分支
最后将原来的login-bug分支删除
分支-合并与提交
合并提交:发生于 原分支 产生了 新的提交 记录后,再 合并 回去时发生,自动使用多个快照记录合并后产生一次新的提交
步骤:
1. 切回到要合入的分支上: git checkout master
2. 合并其他分支过来: git merge content
3. 删除合并后的分支: git branch -d content
最后合并回到主分支上时,提交记录流程图:
注意:提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序
分支-合并冲突
需求1:基于 master 新建 publish 分支,完成发布文章业务,然后修改内容页面的 html 文件的 title 标签,并提交一次
需求2:切换到 master,也在修改内容页面的 html 文件的 title 标签,并提交一次
冲突:把 publish 分支合并到 master 回来,产生合并冲突
概念: 不同分支中,对同一个文件 的 同一部分 修改,Git 无法干净的合并,产生合并冲突
解决:
1. 打开 VSCode 找到冲突文件并手动解决
2. 解决后需要提交一次记录
避免:(多交流)
1. 按页面划分不同分支开发
2. 公共代码在统一文件夹维护
3. Node等软件版本统一,npm 包统一下载
Git 常用命令
Git 远程仓库
概念: 托管在因特网或其他网络中的你的项目的 版本库
作用:保存版本库的历史记录,多人协作
创建:公司自己服务器 / 第三方托管平台( Gitee ,GitLab,GitHub...)
需求:创建远程版本库,并把本地 Git 仓库推送上去保存
步骤:
1. 注册第三方托管平台网站账号
2. 新建仓库得到 远程仓库 Git 地址
3. 本地 Git 仓库 添加 远程仓库原点地址
命令:git remote add 远程仓库别名 远程仓库地址
例如:git remote add origin https://gitee.com/lidongxu/work.git
4. 本地 Git 仓库 推送 版本记录到远程仓库
命令:git push -u 远程仓库别名 本地和远程分支名
例如:git push -u origin master
完整写法:git push --set-upstream origin master:master
Git 远程仓库-克隆
克隆:拷贝一个 Git 仓库到本地,进行使用
命令: git clone 远程仓库地址, 例如:git clone https://gitee.com/lidongxu/work.git
效果:在运行命令所在文件夹,生成 work 项目文件夹(包含版本库,并映射到暂存区和工作区)
注意1:Git 本地仓库已经建立好和远程仓库的链接
注意2:仓库公开随意克隆,推送需要身为仓库团队成员
多人协同开发
需求:小传新代码共享给小智
步骤:
1. 小传开发代码 -> 工作区 -> 暂存区 -> 提交 -> 拉取(可选)-> 推送
2. 小智 -> 拉取(后续也可以开发代码 -> ... -> 推送)
3. 想要看到别人同步上去的最新内容: git pull origin master 等价于
git fetch origin master:master(获取远程分支记录到本地,未合并)
git merge origin/master (把远程分支记录合并到所在分支下)