// git config --global user.name 'your name' 可以设置全局用户名,在commit记录里显示的是这个配置设置的名称。
// git config --global user.email 'your email' 可以设置全局用户邮箱。
// git config user.name 可以查看当前设置的用户名
一、模块的创建及更新
1.创建模块
--新建一个github仓库repository,比如:git_submodule
--新建文件夹,比如:learngit
--进入到文件夹中,打开git bash
2.开发模块内容
--git clone git_submodule 的url地址,将创建的项目克隆到本地

--编辑项目内容,比如:新建一个txt文件,并填入一些内容。

3.提交修改本地
--cd 到子模块文件夹中
--git status 查看修改

--git add . ,将所有改动添加到缓存区中
--git status,查看添加的状态

--git commit -m 'creat new .txt file', 提交并对更改进行说明

4.首次更新到远程
--ssh-keygen -t rsa -C "youremail@example.com",在本地创建公钥。
(email地址改成自己的github邮箱地址)
--把C:\Users\Administrator\.ssh中,id_rsa.pub公钥中的内容添加到github。(titile随便写)



--git remote add origin git@github.com:asd571362/git_submodule.git,
(替换成自己的用户名和项目名),关联远程仓库。
如果已经存在,执行git remote rm origin,再执行上一步。
-- git push --set-upstream origin master,首次推送并设置关联远程master分支

5.模块后续更新。
--执行2、3步骤,略过第4步。
--git pull,查看是否有冲突,如有冲突,进行修改。然后重新执行2、3步骤。
--git push 推送更新到远程。
二、作为子模块集成及更新到第三方平台
1.fork 平台项目
--到对应的平台项目页面,点击fork

2.子模块集成到平台
--git clone fork后的url地址
--git submodule add 子模块地址 平台子模块文件夹/git_submodule , 平台子模块文件夹为平台中第三方模块添加的位置,不同平台可能不一样,以平台说明为准。

--git status 查看仓库状态

--git commit -m 'add git_submodule'

--git remote add origin git@github.com:asd571362/JS.git,首次关联远程仓库
--git push --set-upstream origin master,首次提交到远程仓库

--提交成功后,在平台子模块文件夹中出现了git_submodule模块,
@后面的是当前子模块指向的commit版本号

--点击pull request 提交更新请求,平台维护方同意后就可以出现在平台源地址。

3.子模块更新到平台
--子模块更新必须对接平台的最新版本,可以删除重新fork。(也有其它设置的方法,但是重新fork比较简单)
--git clone fork后的url地址
--cd 到 子模块的父文件夹
--git submodule init 子模块名称,初始化子模块(只添加子模块版本的指针,文件夹是空的)

--git submodule update 子模块名称,更新平台中的子模块文件到本地

-- cd git_submodule/,进到子模块分支显示的是之前指向的版本号。

--git checkout master ,切换到主分支
--git pull ,查看是否有冲突
--git merge origin/master 合并远程分支
--cd .. ,git status,回到上层目录,查看仓库状态

--git pull , git add . ,git commit -m 'update git_submodule'
--git push, 成功后fork的项目中子模块的版本会更新到最新版本
最后,pull request。
待解决:每次重新克隆后,push失败,需要重新关联remote项目?
