【git】git子模块操作-从子模块的远端拉取上游修改 & 从项目远端拉取更改
1.从子模块的远端拉取上游修改
1.1 在项目子模块目录中,运行git fetch与git merge更新本地代码
(1) 这种方法在获取子模块非master分支的更新时,没成功获取更新,没搞清楚原因;
(2) 如果现在返回主项目并运行git diff --submodule,可以看到子模块被更新的同时,获得了一个包含新添加提交的列表; 如果不想每次运行git diff时都输入--submodule,可以将diff.submodule设置为"log"来将其作为默认行为,即"git config --global diff.submodule log";
1.2 在项目目录中,运行git submodule update --remote;
(1) git会进入子目录然后抓取更新;
(2) 该命令默认user想要更新并检出子模块仓库的master分支,可以通过设置更新并检出子模块的其他分支;
(3) "git config -f .gitmodules submodule.submodule名字.branch submodule分支名"可以实现(2)中目的;
(4) 当运行git submodule update --remote时,git默认会尝试更新所有子模块,如果有很多子模块的话,可以传递想要更新的子模块的名字(未实践);
(5) 可以通过执行"git config --global diff.submodule log"实现,执行git diff命令时,达到git diff --submodule的效果;
(6) 可以通过执行"git config status.submodulesummary 1",实现执行git status时,显示更详细的内容;
(7) 提交改动后,可以使用git log -p --submodule查看子模块中的提交日志;
2.从项目远端拉取更改
(1) 默认情况下,git pull命令会递归地抓取子模块的更改,但是它不会更新子模块; 此时,执行git status,会显示子模块"已修改",但没有更新;为了完成更新,需要运行git submodule update,最好运行git submodule update --init --recursive;
最新文章
- mysql 主从master-slave同步复制 配置,为读写分离准备
- mysql局域网连接
- The Run-Time Constant Pool The Constant Pool
- DTCMS中文章增加tags标签和关键词时中文,替换为英文状态,
- Go2Shell
- 浅析Linux操作系统工作的基础
- 转:char*, char[] ,CString, string的转换
- 方案:解决 wordpress 中 gravatar 头像被墙问题
- QTP的基本功能介绍
- Java中的数组越界问题
- 微信小程序之----问题
- 两个java项目,跨域访问时,浏览器不能正确解析数据问题
- Docker入门之四搭建私有仓库
- git使用教程之了解git
- Python day 6(5) Python 函数式编程3
- Mittag-Leffer函数, Matlab内部函数
- JavaScript有这几种测试
- SED单行脚本快速参考(Unix 流编辑器)(转)
- Java实现五子棋
- Linux中常用命令