00. git 基础
01. git config
config 配置有
【01】system级别
【02】global(用户级别)
【03】local(当前仓库)
设置先从system -> global -> local 底层配置会覆盖顶层配置
分别使用--system/global/local 可以定位到配置文件
# 查看当前用户(global)配置
git config --global --list
# 修改配置信息
git config --global user.name "myname"
git config --global user.email "test@gmail.com"
02. git flow
Git Flow工作流程围绕项目发布定义了严格的分支模型
GitFlow分支模型.png
- Master分支:用于保存正式版本发布的历史
- Develop分支:用于集成各种开发功能的分支
- Hotfix分支:修复发布后的问题的分支
- Release分支:Develop分支积攒一定功能后,Release分支作为准备发布的分支,该分支上只能修复bug和做一些文档相关的工作
- Feature分支:用于开发功能的分支
03. git submodule
开始使用
-
添加:
方式:git submodule add [git地址] [添加到的本地路径]
示例:git submodule add https://github.com/chaconinc/DbConnector src/framework -
初始化:(直接clone的项目不带子模块)
方式1:git submodule init + git submodule update
方式2:git submodule update --init
方式3:git clone --recursive https://github.com/chaconinc/MainProject -
更新:
方式1:git submodule update --remote DbConnector (不指定模块则全部更新)
方式2:切换到模块目录执行: git fetch + git merge origin/master
注1:git submodule update相当于根据当前代码库的提交来更新
注2:git submodule update --remote根据子模块最新代码更新 -
删除:
git rm -r CryptoLibrary (删除目录之后可以重新添加 submodule add)
注:使用rm -rf 删除目录之后可以通过以下方式恢复
方式1:git submodule update --init (更新到主代码提交的子模块版本)
方式2:git submodule update --remote (更新到子模块最新提交) -
其他1:git status 出现括号内容
// 子模块有更新 modified: src/framework (new commits) // 在主项目中修改了子模块 modified: src/framework_swan (modified content) // 二者兼备 modified: src_h5/framework (new commits, modified content)
-
其他2:子目录游离HEAD状态
该状态下,直接修改子目录内容会被下次更新直接覆盖,如果需要修改子模块,需要在本地建立相应的子模块分支,然后进行修改;
同时在拉取代码时采用git submodule update --remote --merge的方式;
git push --recurse-submodules=check 推送主代码时检查自分支是否推送
git push --recurse-submodules=on-demand辅助推送子分支 -
其他3:git submodule foreach
对每个模块执行相应的git指令
04. git ssh密码设置、删除
ssh-keygen -p
注:需要删除时,在提示输入新密码时回车即可