Skip to content

开发技术文档

git常用命令

详细列出本地所有分支信息

具体命令

详细列出本地所有分支信息命令
git
git branch -vv

具体来说,它会显示:

  • 本地分支列表:列出你当前仓库中的所有本地分支。
  • 当前分支标识:用 * 标记出你当前正在工作的分支。
  • 最新的提交信息:显示每个分支最新一次提交的简短哈希值(SHA-1)和提交信息(commit message)。
  • 关联的远程分支(上游分支):如果某个本地分支设置了追踪(tracking)某个远程分支(例如 origin/main),这个命令会明确显示这种关联关系。
  • 分支状态:显示本地分支相对于其追踪的远程分支是超前(ahead,本地有提交,远程没有)、落后(behind,远程有提交,本地没有)还是同步(up to date)。

命令结果及释义

git branch -vv命令结果展示
git
  develop    abc1234 [origin/develop: ahead 2, behind 1] Update documentation
* main       def5678 [origin/main: up to date] Merge pull request #123
  feature/new-ui 9012ef3 [origin/feature/new-ui: ahead 5] Implement new UI components
  old-feature 456789a [origin/old-feature: gone] Old feature branch
  • develop: 分支名称。
  • abc1234: 该分支最新提交的简短哈希值。
  • [origin/develop: ahead 2, behind 1]: 该分支追踪 origin/develop,并且本地分支比远程分支超前2个提交(有2个本地提交未推送),落后1个提交(远程有1个新提交未拉取)。
  • main: 分支名称,前面的 * 表示这是当前所在的分支。
  • [origin/main: up to date]: 该分支追踪 origin/main,并且与远程分支完全同步。
  • old-feature: 分支名称。
  • [origin/old-feature: gone]: 该分支曾经追踪 origin/old-feature,但这个远程分支在远程仓库中已被删除。

合并release_v830_new分支部分内容到develop分支

  • 之前在处理合并时可能造成矛盾,导致develop部分代码缺失
  • 你当前在分支:develop
  • 你想将release_v830_new分支的部分文件或目录下的内容合并到develop分支;

方案一

使用 git checkout(适用于 Git < 2.23)

git
# 从 develop 分支获取某个文件
git checkout develop -- path/to/YourFeignClient.java

# 从 develop 分支获取某个目录及其内容
git checkout develop -- path/to/feign/

这会将 develop 分支中指定路径下的文件内容 直接合并到你的当前分支的工作区和暂存区,不会带来任何提交历史,非常干净。


方案二

使用 git restore(适用于 Git >= 2.23)

git
# 从 develop 分支获取某个文件
git restore --source develop -- path/to/YourFeignClient.java

# 从 develop 分支获取某个目录及其内容
git restore --source develop -- path/to/feign/

git restore 是 Git 2.23 引入的新命令,语义更清晰,推荐使用。


示例

假设你想从 develop 分支获取以下内容:

git
src/main/java/com/ninebot/staff/client/IStaffClient.java
src/main/java/com/ninebot/staff/dto/StaffClientDTO.java

假设你在目录(ninebot-beforesale-api/)下执行 Git 操作,命令应为:

git restore --source develop -- ninebot-staff-api/src/main/java/com/ninebot/staff/

这会将整个 staff/ 目录及其子目录的文件都从 develop 分支中拉取到你当前分支的对应位置。

如果你当前分支没有对应的目录也没关系,比如其他开发者新增了ninebot-demo-api子模块,但你本分支没有该子模块,你执行

git restore --source develop -- ninebot-demo-api/src/main/java/com/ninebot/demo

Git会自动创建缺失的目录结构,并从 develop 分支提取/demo路径下的内容到你当前分支的对应位置

注意: Git命令的执行路径是相对于你当前所在目录的相对路径

注意:git restore 的行为是直接从指定分支提取文件内容覆盖当前工作区的文件内容

git restore --source develop -- ninebot-staff-api/src/main/java/com/ninebot/staff/client/IStaffClient.java

比如你当前client目录下已有IStaffClient.java文件,同时又执行了上述命令,Git 不会报冲突,也不会自动合并。它会直接用 develop 分支上的该文件内容,覆盖你当前分支上的同路径文件内容。


提交变更

执行完上述命令后,这些文件就会出现在你的工作区:

git status  # 查看变更
git add .
git commit -m "Merge feign files from develop branch"

创建分支

基于指定的分支创建一个新的分支,并推送到远程

git switch -c feature/store-yhm-v0.7 origin/release_v830_new

git push origin feature/store-yhm-v0.7

合并提交

流程

# 解决未暂存更改(使用上面任一方法)
git add . && git commit -m "临时提交"  # 或 git stash

# 继续之前的流程
git stash
git fetch origin develop:develop
git rebase develop

# 如果有冲突,解决:
#   git add <冲突文件>
#   git rebase --continue

# 创建临时合并分支
git checkout -b feature/push_store_yhm_v0.1 develop
git merge feature/store-yhm-v8.0

# 推送前再次同步
git fetch origin develop:develop
git rebase develop

# 推送并清理
git push origin feature/push_store_yhm_v0.1:develop
git checkout feature/store-yhm-v8.0
git branch -D feature/push_store_yhm_v0.1
git stash pop

830合并提交

流程

# 解决未暂存更改(使用上面任一方法)
git add . && git commit -m "临时提交"  # 或 git stash

# 继续之前的流程
git fetch origin release_v830_new:release_v830_new
git rebase release_v830_new

# 如果有冲突,解决:
#   git add <冲突文件>
#   git rebase --continue

# 推送前再次同步
git fetch origin release_v830_new:release_v830_new
git rebase release_v830_new

# 推送当前分支到远程仓库
git push origin feature/store-yhm-830-v0.6:feature/store-yhm-830-v0.6

# 提交合并请求

# 再将release_v830_new分支代码合并到develop
git fetch origin

git checkout develop

git pull origin develop

git merge release_v830_new

git push origin develop:develop

IDEA常用注释标签

启动Nacos命令

cd D:\SoftWare\Nacos\nacos-server-2.5.1\nacos\bin
.\startup.cmd -m standalone

其它

VPN
https://sslvpn.segway-ninebot.com:4433/
https://sslvpn.segway-ninebot.com:4433/portal/#!/service
账号:ay-yanghuimin
密码:bk123456

蓝鲸
https://devops.segway-ninebot.com/console/?platformMethod=manual

GitLab
http://10.10.192.116:8090/
15035113008@163.com
yhm082000.

# 启动frp服务端
## 先检查 /etc/systemd/system 目录下的 frps.service 文件是否如下, 如果没有则配置
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp_0.52.3_linux_amd64/frps -c /opt/frp_0.52.3_linux_amd64/frps.ini

[Install]
WantedBy=multi-user.target

## 然后启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps # 检查状态是否运行正常

开放防火墙端口:

在你的云服务器控制台的安全组/防火墙规则中,放行以下端口:

7000:用于 frp 服务端和客户端的基础通信。

7500:用于访问 frp 控制台(浏览器访问 http://你的服务器IP:7500,用你设置的用户名密码登录)。


# 启动frp客户端
cd D:\SoftWare\frp\frp_0.52.3_windows_amd64
.\start_frpc.bat

# 启动nginx
cd D:\SoftWare\nginx-1.28.0
# 检查配置文件
.\nginx.exe -t
# 启动nginx
start .\nginx.exe
# 重新加载配置文件
.\nginx.exe -s reload


wifi审批邮箱
di.yan@cn.ey.com

远程顾问办公-QA:https://doc.weixin.qq.com/doc/w3_AS4AAAY9APUCNJ4JoP5FTT1OOvaYm?scode=AHwAVAcbAAgfp9XMFQAfkAiQbNADU
外包人员入职流程:https://doc.weixin.qq.com/doc/w3_Ab0AnQZIAOMAS2oX0PGSsiB5FDqLh?scode=AHwAVAcbAAgUL2FI03AfkAiQbNADU
服务店进销存模块开发设计:https://tcngq5hsmqaf.feishu.cn/docx/NaKydPUsDoq98JxfNCuckhDTnMh
后端开发QA:https://doc.weixin.qq.com/doc/w3_AfsAAAY9APUjpraJ1tZRhW3BZTKzM?scode=AHwAVAcbAAgO7MlMpd
渠道开发(门店相关资料、流程图):https://www.kdocs.cn/view/l/ceKib3FIOAxd?f=301
前端设计图URL:
https://ra9e0r.axshare.com/#id=81g7fd&p=%E9%97%A8%E5%BA%97%E6%A1%A3%E6%A1%88%EF%BC%88%E5%90%AB%E6%96%B0%E5%A2%9E%EF%BC%89&g=1
https://p4wwqg.axshare.com/#id=ac7f7f&p=%E4%BB%BB%E5%8A%A1%E5%8D%95%E8%AF%A6%E6%83%85%EF%BC%88%E4%B9%9D_pc_&g=1
项目集管理综合文档:https://doc.weixin.qq.com/sheet/e3_ARMAFAYhAFACNDxQLrlBzRSaC1hbT?scode=AHwAVAcbAAgVbluY9NAfkAiQbNADU&tab=gn706t

接口文档
https://doc.weixin.qq.com/sheet/e3_AZMAiAYtAHcCNEMscIN9TTJqclzpL?scode=AHwAVAcbAAg297SesrAeoAMgY0ABY&tab=000003&journal_source=chat

日志查看网址
https://auth.huaweicloud.com/authui/login?id=segway-ninebot&username=lst-rd
密码:qA4!lB3@cS

所有服务的日志都放在一起的,所以如果有关键词要查询,格式这样

appName : dev-ninebot-aftersale-main AND content: XXX
dev-ninebot-aftersale-main 就是不同服务的serviceName,带上环境前缀

线上开发环境NACOS地址
http://10.232.0.194:8848/nacos/#/login
用户名:nacos
密码:nacos

线上开发环境接口文档地址
https://lst-api-dev.segway-ninebot.com/doc.html

门店PRD:
https://doc.weixin.qq.com/doc/w3_AWIAAAY9APUCNir73AvxDRpOYR1m0?scode=AHwAVAcbAAgktxu118AfkAiQbNADU

九号的类禅道平台
https://devops.segway-ninebot.com/console/?platformMethod=manual
后续的需求和BUG跟踪都在这个平台上,各位的邮件应该收到一个初始化密码

admin
******

dev线上地址:https://lst-admin-dev.segway-ninebot.com/   
账号admin 
密码******  就是六个*

九号渠道开发(字段excel)
https://doc.weixin.qq.com/sheet/e3_AWIAAAY9APUCNUA8oe3GDQbCxamMP?scode=AHwAVAcbAAgb1tqvHiAWIAAAY9APU&tab=u8lsnd

// 实施组每日总结 每日日报填写链接
https://doc.weixin.qq.com/journal/create?docid=c2_AHwAVAcbAAgAfsAAAY9APUCNWiTYOfXLj_fork

我们系统的nacos配置支持两种形式。
1、通过bootstrap.yaml配置
2、通过启动类 NinebotLauncherConstant.java配置。启用类配置需开启(enabled设置为true),
开启后,优先采用配置类配置。后面配置中心地址可以使用线上的开发环境,注册地址使用本地,即只需在配置类中设置本地nacos注册中心地址、本地注册中心命名空间。

dev环境定时任务地址
http://10.232.0.194:9099/xxl-job-admin/toLogin


1)人员组织结构接口
https://apifox.com/apidoc/shared-66615b52-8696-4212-b827-d6716250e819


2)业务数据开放查询接口
https://apifox.com/apidoc/shared-159a5204-4baf-45ae-963e-6aa6f747b787 
这个是我们的员工对接部分和学习数据部分的接口文档,密码:xmzxl2023。


所有流程相关接口 BpmInstanceController


岗位相关表:
boost_post 岗位
boost_dept 部门
ninebot_dept_region 组织区域
nine_post_role

先在ninebot_dept_region 组织区域表根据区域编码(入参,区编码)选择对应组织区域的,获取到List<deptId>
然后根据List<deptId>在boost_dept表查询已激活的部门List<getId>
然后根据boost_dept表的ID在ninebot_dept_user表查询对应的信息
然后根据ninebot_dept_user表的AccountCode字段与boost_user表的Account字段相比较,获取等值信息
最后查询用户岗位信息,在ninebot_user_post表Account字段与boost_user表的Account字段相比较,并使用postCodes过滤


条件校验(A字段为空与否取决于B字段)	@GroupSequence + 自定义 ConstraintValidator
不同业务场景下校验规则不同(创建 vs 更新)	自定义 Group 接口
校验依赖数据库或其他服务	MapStruct + 自定义 toEntity 方法
想要统一异常处理	结合 @ControllerAdvice 或 @ExceptionHandler


九号电动车
不做直营(不卖客户)
卖给经销商/代理商(商的概念)
C -> 小红书
售前:商/店的管理
售中:O2O 线上下单,线下交付
从旗舰店(线上)买,最终也是门店(门店线下库存)交车
线上将费用结算给门店

售后
B代理商(一网)
b门店(二网,九号不直接与门店签署合同关系)

一个商建立多个法人公司
(商带来的业绩,只看数,不看公司数量,合理避税,业绩越高,税额越大,所以分为多个公司)

抬头(工商法人信息)

店既属于抬头(某个上下的某个具体的公司), 也属于商
店是不是就是法人公司?

门店统一装修风格

CLM 合同系统
MDM ?
CMD(门店装修系统)
OA 办公系统(企业微信)

SAP(企业的ERP系统)

职行力(学习平台)

目前CMD都需要NBL提供哪些接口? 我理解是有三个

一: CMD派工状态,实际进场时间同步 二: 装修完成后,返回实际装修面积,完成时间,方便计算实际押金金额, 多退少补, 我这边没开一个装修任务 ,都有一个对应的任务ID ,返回时数据携带这个任务ID来区分) 三: 同步营业状态: 营业中,装修中,已关闭

目前需求,建店申请填写保存数据(也就是门店档案数据)到数据库,如果能保存到数据库,说明已通过基本的校验,后台自动创建审批流(发起人就是填写建店申请档案的人), 建店申请审批通过后,新建建店任务清单列表(清单列表打算做成可配置的,目前是有档案新建(档案新建审批通过才建立建店任务清单列表,所以状态为已完成),),默认状态为未开始,并自动触发