github中工程代码多仓库多子模块切换同步问题解决
PX4开发子模块不同步问题解决前提主分支为extension关联到远端库master分支A,在此基础上,gitbranch建立extension_tasks分支,然后gitcheckoutextension_tasks 分支,并在其基础上进行开发,并将其推到另外一个远端库的另外一个分支。下面是用法解释: gitbranch和git checkout经
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) 手动删除子模块残留的目录
清理脏文件
根据错误一步一步移除错误!
更多推荐
所有评论(0)