Vue企业级优雅实战02-准备工作03-提交 GIT 平台
代码管理、版本管理是件老大难的事情,尤其多人开发中的代码冲突、突击功能时面临的 hotfix 等。本文只是简单说说如何将一套代码提交到两个 Git 平台(GitHub、GitEE)上。其他的 Git 操作:如本地 commit、远程 push、pull、开启新分支、分支合并等操作,再后面的文章中都会有操作 —— 每一个功能点我都会开启一个新分支。
1 初始化本地 Git 仓库
1.1 初始化仓库
将本地一个目录初始化为本地 git 仓库的命令是:
git init
由于咱的工程是通过 vue-cli 创建的,默认已经初始化本地 git 仓库了,故不需要执行上述命令。
1.2 查看状态
在 webstorm 中打开底部的 Termial
窗口,默认会进入到当前工程根路径的命令行中,输入下列命令查看当前代码的状态:
git status
显示如下内容:
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/modules/
nothing added to commit but untracked files present (use "git add" to track)
提示 src/modules/
没有纳入到 git 的版本管理中。(虽然咱们新创建了很多目录,但里面没有文件,故 git 是不会提示的,只有当里面有文件时,才会检测)。
1.3 添加文件
按照上面的提示,将 src/modules/
添加到 Git 版本管理中:
说明:如果上面提示的内容都全部需要添加到提交列表中,则可以使用 .
匹配全部:
git add .
此时再执行 git status
, 会发现 上面的提示变成 黄色的。如果还是红色,也许你 add 后面的路径有错误。
1.4 提交文件
上面的操作已经将新文件或有改动的文件,添加到待提交的列表中,接下来便是将改动提交到本地仓库:
此时再次执行 git status
, 会显示:
MacBook-Pro dscloudy-admin-single % git status
On branch master
nothing to commit, working tree clean
git 提交建议遵循业内规范,随着项目增大、提交数越来越多,git commit message 可以提供很多历史信息、便于快速查找,我个人偏好 Angular
的规范,推荐使用工具 commitizen
规范提交信息的格式。同时还可以借助 conventional-changelog
生成 Change Log。
1.5 安装使用 commitizen
commitizen的运行基于 Node JS,在命令行中全局安装:
npm install -g commitizen
显示如下信息,则说明安装成功:
MacBook-Pro ~ % npm install -g commitizen
/usr/local/bin/git-cz -> /usr/local/lib/node_modules/commitizen/bin/git-cz
/usr/local/bin/cz -> /usr/local/lib/node_modules/commitizen/bin/git-cz
/usr/local/bin/commitizen -> /usr/local/lib/node_modules/commitizen/bin/commitizen
+ commitizen@4.2.0
added 1 package from 1 contributor, removed 1 package and updated 9 packages in 145.447s
安装好该工具后,需要在命令行中进入工程的根目录,执行下面语句,使工程支持 Angular 的Commit Message 格式:
咱这工程以后提交代码,就不再使用 git commit -m 'xxx'
来提交代码了,改为使用 git cz
命令。
由于刚才执行命令使工程支持 commitizen,故自动修改了 package.json 文件。执行 git status
, 会看到:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: package-lock.json
modified: package.json
no changes added to commit (use "git add" and/or "git commit -a")
咱就提交这个改动尝试 commitizen。 首先还是执行 git add .
, 接着执行:
提示:
cz-cli@4.2.0, cz-conventional-changelog@3.2.1
? Select the type of change that you're committing: (Use arrow keys)
❯ feat: A new feature
fix: A bug fix
docs: Documentation only changes
style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
refactor: A code change that neither fixes a bug nor adds a feature
perf: A code change that improves performance
test: Adding missing tests or correcting existing tests
(Move up and down to reveal more choices)
这里出现了几个选项,这些选项分别代表不同的提交类型: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert:
fix: 修复 bug
docs: 修改了文档
style: 格式,不影响代码运行的改动(空格、格式化、分号等)
refactor: 重构代码
perf: 性能优化的改动
test: 增加测试
build: 影响构建或外部依赖
chore: 辅助工具的变动,不包括源码和测试文件(如 ESLint 的配置等)
revert: 回到以前提交
刚才咱们的改动影响 package.json, 属于 build 类型,选择 build
,回车后提示:
改动影响的范围,直接回车即可。接下来提示输入改动的简短描述:
? Write a short, imperative tense description of the change (max 93 chars):
简要描述本次提交的改动即可,我这里输入:添加 commitizen 的支持
。回车后,会依次让输入 详细描述、选择是否是 breaking changes、是否影响未关闭的 issues, 全部都直接回车即可。最后会提示:
[master 491531b] build: 添加 commitizen 的支持
2 files changed, 547 insertions(+)
这样就完成了git cz
代码提交。关于生成 Change Log,后面遇到在写。接下来需要分别推送到远程仓库。
2 生成 SSH-Key
我们需要把代码分别推送到 GitHub 和 Gitee,由于两个平台对应两个 git 账号,故需要分别生成两个 SSH-Key。
1、 生成 gitee 的 SSH-Key:
ssh-keygen -t rsa -C '你的邮箱' -f ~/.ssh/dscloudy_gitee_id_rsa
执行该命令时会提示 Enter passphrase
, 直接回车即可。
2、同样的方式生成 github 的 SSH-Key
ssh-keygen -t rsa -C '你的邮箱' -f ~/.ssh/dscloudy_github_id_rsa
3、查看生成的文件列表
ls -la ~/.ssh
4、配置 config 文件
~/.ssh 目录下会有一个 config 文件,如果没有就新建一个,里面内容如下:
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/dscloudy_gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/dscloudy_github_id_rsa
3 推送到 Gitee
3.1 创建仓库
Gitee 地址:https://gitee.com
如果没有账号,先创建账号,登录。 点击页面右上角+
创建新仓库
3.2 设置密钥
在命令行中输入命令查看公钥:
cat ~/.ssh/dscloudy_gitee_id_rsa.pub
将显示的内容复制到上面的文本框中,点击确定。
输入密码后点击验证
按钮。 验证通过后,在命令行中输入命令判断是否配置成功:
ssh -T git@gitee.com
回车后会看到如下提示:
一定要手动输入 yes
, 再回车,会提示:
Hi dscloudy! You've successfully authenticated, but GITEE.COM does not provide shell access.
看到 successfully
的字眼,说明配置成功。
3.3 推送代码
在命令行中回到工程的根路径,输入如下命令添加到远程仓库:
git remote add gitee_origin git@gitee.com:cloudyly/dscloudy-admin-single.git
推送到远程仓库:
git push -u gitee_origin master
推送成功后,在网页上面便可以看到这个工程了。
4 推送到 GitHub
4.1 创建仓库
GitHub 地址:https://github.com
如果没有账号,先创建账号,登录。 点击页面右上角+
创建新仓库。
4.2 设置密钥
进入该页面后,点击 'New SSH Key'。在命令行中查看之前生成的 GitHub的 SSH-Key:
将结果复制到输入框中。点击确定后,会让输入 github 的密码,验证通过后便添加完成。在命令行中输入命令判断是否配置成功:
ssh -T git@github.com
回车后会看到提示仍然输入“yes”,最后出现 successfully authenticated
便配置成功。
4.3 推送代码
在命令行中回到工程的根路径,输入如下命令添加到远程仓库:
git remote add github_origin git@github.com:cloudyly/dscloudy-admin-single.git
推送到远程仓库:
git push -u github_origin master
推送成功后,在网页上面便可以看到这个工程了。
至此,咱们完成了多个 SSH-Key 的配置,一级一套代码关联两个远端仓库的操作。其他操作将会贯穿到后面的实战中。
欢迎关注我的个人公众号,留言可加我个人微信或交流问题
Vue企业级优雅实战02-准备工作03-提交 GIT 平台的更多相关文章
- Vue企业级优雅实战-00-开篇
从2018.1.开始参与了多个企业的中台建设,这些中台的技术选型几乎都是基于 Spring Cloud 微服务架构 + 基于 Vue 全家桶的前端.我前后端架构及开发我几乎各占一半的精力,在企业级前端 ...
- Vue企业级优雅实战05-框架开发01-登录界面
预览本文的实现效果: # gitee git clone git@gitee.com:cloudyly/dscloudy-admin-single.git # github git clone git ...
- Vue企业级优雅实战03-准备工作04-全局设置
本文包括如下几个部分: 初始化环境变量文件 JS 配置文件初始化:如是否开启 Mock 数据.加载本地菜单.URL 请求路径等: 国际化文件初始化:初始化国际化文件的结构: 整合 Element UI ...
- Vue企业级优雅实战04-组件开发01-SVG图标组件
(后续的文章 公众号会提前一周更新,欢迎关注文末的微信公众号:程序员搞艺术) 预览本文的实现效果: # gitee git clone git@gitee.com:cloudyly/dscloudy- ...
- Vue3 企业级优雅实战 - 组件库框架 - 1 搭建 pnpm monorepo
前两篇文章分享了基于 vite3 vue3 的组件库基础工程 vue3-component-library-archetype 和用于快速创建该工程的工具 yyg-cli,但在中大型的企业级项目中,通 ...
- Vue3 企业级优雅实战 - 组件库框架 - 2 初始化 workspace-root
上文已经搭建了 pnpm + monorepo 的基础环境,本文对 workspace-root 进行初始化配置,包括:通用配置文件.公共依赖.ESLint. 1 通用配置文件 在项目 根目录 下添加 ...
- Vue3 企业级优雅实战 - 组件库框架 - 3 搭建组件库开发环境
前文已经初始化了 workspace-root,从本文开始就需要依次搭建组件库.example.文档.cli.本文内容是搭建 组件库的开发环境. 1 packages 目录 前面在项目根目录下创建了 ...
- Vue3 企业级优雅实战 - 组件库框架 - 4 组件库的 CSS 架构
在前一篇文章中分享了搭建组件库的基本开发环境.创建了 foo 组件模块和组件库入口模块,本文分享组件库的样式架构设计. 1 常见的 CSS 架构模式 常见的 CSS 架构模式有很多:OOCSS.ACS ...
- 如何优雅的使用vue+vux开发app -02
如何优雅的使用vue+vux开发app -02 很明显这又是一个错误的示范,请勿模仿 使用动态组件实现保留状态的路由 <!DOCTYPE html> <html> <he ...
随机推荐
- 2019 7 8 HL 模拟赛
今天 很不爽 昨天晚上没有睡好觉 大约2点才睡着吧 反正翻来覆去睡不着 不知道为什么可能可行流 或者可行费用流并没有深刻理解 .我不会写 让我心情非常的焦躁. 大凶 顺理成章的被3位强者吊着锤(妈呀我 ...
- CF 633 div1 1338 B. Edge Weight Assignment 构造
LINK:Edge Weight Assignment 这场当时没打 看到这个B题吓到我了 还好当时没打. 想了20min才知道怎么做 而且还不能证明. 首先考虑求最小. 可以发现 如果任意两个叶子节 ...
- synchronized的锁升级/锁膨胀
偏向锁 偏向第一个拿到锁的线程. 即第一个拿到锁的线程,锁会在对象头 Mark Word 中通过 CAS 记录该线程 ID,该线程以后每次拿锁时都不需要进行 CAS(指轻量级锁). 如果该线程正在执行 ...
- SparkBench安装使用入门
SparkBench安装以及快速开始 欢迎关注我的GitHub~ 本指南假定已经可以正常使用Spark 2.x,并且可以访问安装它的系统. 系统环境 CentOS 7.7.1908 Ambari-Sp ...
- RNN神经网络模型原理
1. 前言 循环神经网络(recurrent neural network)源自于1982年由Saratha Sathasivam 提出的霍普菲尔德网络. 传统的机器学习算法非常依赖于人工提取的特征, ...
- KMP算法-从入门到进阶
题目描述 给定一个文本串text和模式串pattern,从文本串中找出模式串第一次出现的位置 先来看最简单的方法,方便理解题目,也就是暴力求解 暴力求解 放大上面的图,得到下面这个.题目要求匹配到整个 ...
- 一张图理清 Python3 所有知识点
如果你前几天一直有关注 GitHub Trending,那你应该会留意到「Python3 in one pic」这个开源项目. 很多人学习python,不知道从何学起.很多人学习python,掌握了基 ...
- ES6 面向对象笔记
JS面向对象两大编程思想 面向过程 面向对象 面向过程编程POP 面向过程就是分析出问题的需要步骤,然后用函数一步一步的实现,使用的时候一个一个调用就可以了 面向对象编程OOP ...
- 【计算机算法设计与分析】——SVM
一.简介 支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解.由简至繁的 ...
- 11 Linux(CentOS)用户与权限
用户管理 root 在root用户下可以进行以下操作 useradd 用户名 新增用户 userdel 用户名 删除用户,同时应该删除家目录下的用户文件,与邮箱目录下的用户文件 ...