【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;
【git】git子模块操作-从子模块的远端拉取上游修改 & 从项目远端拉取更改的更多相关文章
- git彻底删除或变更子模块
今天遇到一个很怪的问题,我想把我的一个子模块切换到另一个上游,我按照网上的方法删除子模块然后新建后,这个子模块依旧跟踪着我先前的上游.自己摸索了一下,可能方法比较傻,不过是可行的,希望能给大家一些帮助 ...
- Git基本命令行操作 (转)
Git远程操作详解 作者: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和 ...
- git 命令行操作
Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 这里说一下在命令行对git进行操作 git init [在本地初始化一个git库] //当你的git服务器里面已经有文 ...
- [skill][git] git 常用操作记录
傻瓜入门: step by step : https://try.github.io/levels/1/challenges/1 一本书: https://git-scm.com/book/en/v2 ...
- Git下基本命令操作
提前准备好一个文件夹,并且进入该文件夹. 1.clone Github 上的Repository,如: git clone git@github.com:Git账号用户名/项目名称.git 2.仓库初 ...
- git 经常使用操作集锦
创建仓库 新建普通仓库: jxdong@ubuntu-server:~/workspace/git$ git init Reinitialized existing Git repository in ...
- 常用 Git 命令行操作
本文记录了一些常用 Git 命令行操作的具体使用方式 git clone git clone REPOSITORY_URL 拉取仓库,并使用仓库名作为本地文件名 git clone REPOSITOR ...
- git命令行操作
从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...
- jenkins中通过git发版操作记录
之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录. 一.不管是通过svn发版还是git发版,都要首先下载svn或git插件.登陆jenkins,依次点 ...
- Git基本命令行操作
A. 新建Git仓库,创建新文件夹git init B. 添加文件到git索引git add <filename> --- 单个文件添加git add * --- 全部文件添加 C. ...
随机推荐
- Docker安装部署Mysql8(以作数据持久化)
1.创建容器并进行持久化处理 #拉取镜像 docker pull mysql:8.0.20 #启动镜像,用于拷贝配置文件到宿主机 docker run -p 3306:3306 --name mysq ...
- WPF HandyOrg DataGrid 表格内容和标题居中显示
表格内容居中 对于文本显示列DataGridTextColumn需要设定文本内容水平居中或者水平居右,而不是HandyControl中设定的样式默认显示为居左时,需要继承DataGridCellSty ...
- Linux命令使用时路径存在空格、特殊符号
https://blog.csdn.net/Homewm/article/details/102935965 Linux命令使用时路径存在空格.特殊符号(如-.@等等)如何处理呢? 再如可以转义的字符 ...
- Linux的终端(base),进入base环境
正常界面,如下 带有(base) 一般是由于安装了conda环境管理软件,它自带一个base环境.第一次安装时出现这种情况可能是由于软件将启动base环境的命令写入-/.bashrc 文件,这就相当于 ...
- taro框架开发微信小程序遇到的问题
ios端,如果input放在了dispplay flex里面,会导致一系列问题 滑动屏幕,键盘不收起,input值随屏幕滚动 input之前切换,键盘不弹起来或有时弹有时不弹 键盘莫名收起 input ...
- vue项目中禁用浏览器缓存配置案例
项目发布新版本,部署线上后用户浏览器需要清理缓存 1.public文件夹中修改 index.html文件meta配置 <meta http-equiv="Cache-Control&q ...
- Python: 取消numpy科学计数法
Numpy中默认是使用科学计数法来显示数据的,但是这种做法往往不利于我们观测数据,比如坐标数据等.那么如何取消numpy科学计数法呢,请往下看. np.set_printoptions() impor ...
- 【C学习笔记】day3-2 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
#include <stdio.h> int main() { double sum = 0; double j = 1.0; for (int i = 1; i <= 100; i ...
- HTML、CSS笔记(一)
垂直对齐图像文字 vertical-align:text-top; 图像的顶部与同一行中最高的图像或文本的顶部对齐 <img src="images/cake01.jpg" ...
- Jsonhelper类
public static class JsonHelper { #region json转对象 /// <summary> /// json转对象 /// </summary> ...