PX4
开发子模块不同步问题解决
前提主分支为
extension
关联到远端库
master
分支
A
,在此基础上,
gitbranch
建立
extension_tasks
分支,然后
gitcheckout extension_tasks
分支,并在其基础上进行开发,并将其推到另外一个远端库的另外一个分支。
下面是用法解释:
gitbranch
和
git checkout
经常在一起使用,所以在此将它们合在一起
1.
Gitbranch
一般用于分支的操作,比如创建分支,查看分支等等,
1.1git branch
不带参数:列出本地已经存在的分支,并且在当前分支的前面用
“*”
标记
1.2git branch -r
查看远程版本库分支列表
1.3git branch -a
查看所有分支列表,包括本地和远程
1.4git branch dev
创建名为
dev
的分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支
1.5git branch -d dev
删除
dev
分支,如果在分支中有一些未
merge
的提交,那么会删除分支失败,此时可以使用
gitbranch -D dev
:强制删除
dev
分支,
1.6git branch -vv
可以查看本地分支对应的远程分支
1.7git branch -m oldName newName
给分支重命名
2.Git checkout
1.
操作文件
2.
操作分支
2.1
操作文件
2.1.1git checkout filename
放弃单个文件的修改
2.1.2git checkout .
放弃当前目录下的修改
2.2
操作分支
2.2.1git checkout master
将分支切换到
master
2.2.2git checkout -b master
如果分支存在则只切换分支,若不存在则创建并切换到
master
分支,
repostart
是对
gitcheckout -b
这个命令的封装,将所有仓库的分支都切换到
master
,
master
是分支名,
2.3
查看帮助
gitcheckout –help
当然
gitcheckout
还有许多命令,但这些已经能满足我们日常开发所需
所以这个时候
extension
和
extension_tasks branch
应该是同步的
由于我已在
extension_tasks
上工作很久,两个分支完全不一样了,下面我将做一个测试
这个为
extension
分支,然后创建一个分支并切换过去。
现在两个分支完全一样。
然后,开始处理
extension_tasksbranch
,首先将分支关联回
A
分支的远端库,使用
git branch –set-upstream-to=origin/A
然后
gitpull
解决冲突,
gitcommit
,发现还有子模块不同步的情况
fatal: no submodulemapping found in .gitmodules for path “xxx/xx”
删除子模块:(分
4
步走)
1) $ git rm –cached [path]
根据路径删除子模块的记录
2)
编辑“
.gitmodules”
文件,将子模块的相关配置节点删除掉
清理子模块配置
3)
编辑“
.git/config”
文件,将子模块的相关配置节点删除掉
清理子模块配置
4)
手动删除子模块残留的目录
清理脏文件
根据错误一步一步移除错误!