github中工程代码多仓库多子模块切换同步问题解决

  • Post author:
  • Post category:其他


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)



手动删除子模块残留的目录





清理脏文件





根据错误一步一步移除错误!




版权声明:本文为snowpang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。