首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git子模块初始化到HEAD而不是特定的提交

Git子模块是Git仓库中的一个子仓库,可以将其他Git仓库作为子模块引入到当前仓库中。子模块的初始化可以选择特定的提交或者HEAD。

子模块初始化到特定的提交意味着在当前仓库中,子模块会被设置为指定提交的状态。这样做的好处是可以确保子模块的代码版本是固定的,不会受到其他提交的影响。但是如果子模块的代码有更新,需要手动更新子模块。

子模块初始化到HEAD意味着在当前仓库中,子模块会被设置为最新的提交状态。这样做的好处是可以自动跟踪子模块的更新,当子模块的代码有更新时,当前仓库会自动更新子模块。但是这也可能导致当前仓库的代码在不同时间点上使用了不同版本的子模块代码,可能会引入不稳定性。

根据具体的需求,选择子模块初始化到特定的提交或者HEAD都有其适用的场景。

推荐的腾讯云相关产品:无

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Git Pro深入浅出(二)

交互式暂存 当你修改一组文件后,希望这些改动能放到若干提交不是混杂在一起成为一个提交时,交互式暂存变得非常有用。 $ git add -i/--interactive ? 3....“树” 在我们这里实际意思是“文件集合”,不是特定数据结构。...如果你希望 Git 简单地选择特定一边并忽略另外一边不是让你手动合并冲突,你可以传递给 merge 命令一个 -Xours 或 -Xtheirs 参数。...子模块允许你将一个Git仓库作为另一个Git仓库子目录。它能让你将另一个仓库克隆自己项目中,同时还保持提交独立。...(5)在子模块与主项目中同时做修改 到目前为止,当我们运行 git submodule update从子模块仓库中抓取修改时,Git将会获得这些改动并更新子目录中文件,但是会将仓库留在一个称作“

1.1K31

Git 工具 - 子模块: submodule与subtree使用

模块允许你将一个 Git 仓库作为另一个 Git 仓库子目录。 它能让你将另一个仓库克隆自己项目中,同时还保持提交独立。...父项目以Submodule形式包含子项目,父项目可以指定子项目header,父项目中会提交信息包含Submodule信息,再clone父项目的时候可以把Submodule初始化。...同时这也让我们认识git subtree不是Git原生支持命令,而是第三方开发者通过Git底层命令写出一个高层次脚本,所以它是可以由基础Git命令来实现。...Git仓库原理分析 如果不是很了解底层原理,很可能会导致使用仓库出现云里雾里现象,搞不清楚是父级仓库先提交,还是仓库先提交 git submodule原理分析 我们知道Git底层大致依赖了四种对象...而这正式git submodule核心原理,Git在处理submodule引用时候,并不会去扫描仓库下文件变化,而是取仓库当前HEAD指向commithash值,当我们对子仓库进行了更改后

2K10

Git实战

学习Git有一段时间了,一路上也一直在写有关于Git方面的文章,但总觉得不是我想要,就是感觉有点肉肉,不够直接,不够马上出效果,所以才有了这篇文章,当然这文章可能会不断更新和修正,希望读者可以作为一个工具文章使用...] 本地新建Git工程 现在打算将本地工程,放到Git仓库进行托管了,并且远程Git仓库已经创建了该项目的工程 #本地初始化工程,会生成一个.git文件 git init #将本地工程与远程仓库中项目进行关联...#将本地内容同步远程仓库中 git push -u origin master 显示某一个特定提交日志 git show [十六进制码] 查看提交git log --graph --pretty...(代码回滚到上个版本,并提交git) git revert HEAD 使用reset是不会有日志记录,revert则会要提交一个记录点 修改最新提交信息(修改提交注释信息) git...–date short 子模块 保留组件现有目录结构完整性,故而git创造了类似于maven中module一样功能,来实现子模块管理 打个比方:现在我有一个父工程A,其工程路径下面有五个工程

83510

Git Submodule项目子模块管理

模块化与组件化 最近一直在研究客户端组件化/模块化问题,除了将项目拆分为多个小模块,还会涉及多个子模块管理问题。下面说一些在模块化开发中一些基本知识。...宿主层 宿主层位于最上层, 主要作用是作为一个 App 壳, 将需要模块组装成一个完整 App, 这一层可以管理整个 App 生命周期(比如 Application 初始化和各种组件以及三方库初始化...使用命令git status可以看到多了两个需要提交文件,其中.gitmodules指定submodule主要信息,包括子模块路径和地址信息,moduleA指定了子模块commit id,使用git...更新子模块 更新子模块时候要注意子模块分支默认是不是master分支。 方法一 先pull父项目,然后执行git submodule update,注意moduleA分支始终不是master。...删除子模块 删除子模块会涉及以下几个步骤: 删除.gitsubmodule里相关部分; 删除.git/config 文件里相关字段; 删除仓库目录。

77320

Git 中文参考(四)

如果子模块初始化,则每个 SHA-1 可能以-为前缀,如果当前检出模块提交与包含存储库索引中找到 SHA-1 不匹配,则+和U如果子模块有合并冲突。...如果您只对当前初始化模块相对于索引或 HEAD 中记录提交更改感兴趣, git-status [1] 和 git-diff [1] 也将提供该信息(并且还可以报告对子模块工作树更改)。...none 子模块未更新。 如果子模块尚未初始化,并且您只想使用.gitmodules中存储设置,则可以使用--init选项自动初始化模块。...独立克隆并随后作为子模块或旧设置添加存储库在子模块内部具有子模块 git 目录,不是嵌入 superprojects git 目录中。 默认情况下,此命令是递归。...--candidates= 不是仅仅考虑 10 个最近标签作为描述输入提交候选者,而是考虑。候选人。增加超过 10 将需要稍长但可能产生更准确结果。

12710

git使用具体介绍

3) 仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本号在进行一次更新。 1.2. 使用Git初始化事项 1.2.1....Git help Git help 获取git基本命令 (假设要知道某个特定命令用法,比如:使用Git help clone,来获取git clone用法) 3....以后,全部文件变化信息都会保存到这个文件夹下,不像CVS那样,会在每一个文件夹和文件夹下都创建一个CVS文件夹。 在.git文件夹下有一个config文件,能够改动当中配置信息。...Git add 将当前工作文件夹中更改或者新增文件添�Git索引中,添�Git索引中就表示记入了版本号历史中,这也是提交之前所须要运行一步。...” 来标记这个被你还原版本号,那么以后你想查看该版本号时,就能够使用 revert_version标签名,不是哈希值了。

27510

关于Git这一篇就够了

模块自己仓库中,这样我们就可以使用了 在添加时会添加仓库最新版本,但是此模块不会自动更新,需要我们手动更新,当子模块仓库进行了更新,我们需要进到此子模块文件夹中执行如下命令: git submodule...这两个命令作用分别是初始化模块仓库,更新远程子模块仓库本地,最早git添加子模块只是先在本地生成了映射关系,需要手动执行这两个命令。...–tags 合并与基础 将合并到当前HEAD中 $ git merge 将当前HEAD重新设置 不要重新发布已发布提交!...使用编辑器手动解决冲突,并(在解决之后)将文件标记为已解决 $ git add $ git rm 撤消 丢弃工作目录中所有本地更改 $ git reset –hard HEAD 放弃特定文件中本地更改...›它与以前实现有何不同? 使用命令式现在时态(“ change”,不是“ changed”或“ changes”)与git merge等命令生成消息保持一致。

66210

Git 命令

“树” 在我们这里实际意思是 “文件集合”,不是特定数据结构。 (在某些情况下索引看起来并不像一棵树,不过我们现在目的是用简单方式思考它。)...这表示 HEAD 将是下一次提交父结点。 通常,理解 HEAD 最简方式,就是将它看做 你上一次提交 快照。...reset、checkout reset 命令会以特定顺序重写这三棵树,在你指定以下选项时停止: 移动 HEAD 分支指向 (若指定了 –soft,则到此停止) 使索引看起来像 HEAD (若未指定...reset 会移动 HEAD 分支指向, checkout 只会移动 HEAD 自身来指向另一个分支。 下面的速查表列出了命令对树影响。...远程仓库记录管理工具 git archive 创建项目一个指定快照归档文件 git submodule 子模块 git show 显示一个标签或一个提交信息 git shortlog 归纳 git

84120

Git 进阶使用1

Git rebase操作,避免出现项目分支代码提交记录错乱和浪费存储空间现象 总结 融合代码公共分支时使用git merge,不用git rebase 融合代码个人分支时候使用git rebase...这允许你克隆另外一个仓库到你项目中并且保持你提交相对独立 添加子模块 此文中统一将远程项目https://github.com/maonx/vimwiki-assets.git克隆本地assets...,直接提交到远程项目分支 git add . git ci -m "commit" git push origin HEAD:master 删除子模块 删除子模块比较麻烦,需要手动删除相关文件,否则在添加子模块时有可能出现错误...它只存在于远端仓库中,不是原来仓库中 update update hook在 pre-receive 之后被调用,它可以分别被每个推送上来引用分别调用 post-receive post-receive...很多时候我们只需要一个大型仓库中个别文件或是文件夹,不是直接 clone 整个仓库,这时候就需要用到sparse checkout 对于git 2.19以上版本,我们可以使用git clone

71441

GIT版本控制】--子模块

一、创建与管理子模块 Git模块允许你在一个 Git 仓库中引用另一个仓库。这对于在一个项目中使用其他项目的特定版本非常有用。...初始化模块:运行以下命令来初始化模块git submodule init 这将初始化父仓库中模块配置。...submodule update --remote 切换子模块特定分支或提交:如果需要在子模块中使用特定分支或提交,可以切换到子模块目录并运行 Git 命令。...以下是一些子模块最佳实践: 使用稳定模块链接: 使用稳定链接,如特定发布版本或标签,不是使用子模块主分支。这可以确保你父仓库不会受到子模块不稳定更改影响。...三、总结 创建和管理Git模块总结:Git模块允许在一个仓库中引用另一个仓库,通过添加、初始化和更新子模块,你可以将外部代码集成到你项目中。

48030

Git-命令速查与相关问题解决-Cheatsheet & Troubleshooting

an, %ar : %s" 使用特定格式来输出 git log master……experiment 查看在 experiment 分支中不在 master 分支中提交, 这个用法很好, 可以用于...stash git update-index --no-assume-unchanged /path/to/file 重新开始跟踪某个特定文件 对应文件夹应用 不包含文件夹方式 这个方式不包含文件夹...VSC 编辑完成 给特定项目设置特定 user: 这部分也可以 .git/config 添加以下内容 git config user.name "what ever" git config..., 只会选中这个 commitID 之后提交 git rebase -i -root 因为不会选中当前 commit, 如果要修改最初始 commit 就要像这样写, 然后在对应日志里面将 pick...commit-tree "$@"; fi' HEAD 这一段内容改写完毕之后, 会出现大量重复提交 切记先将其推到一个分支里面, 再进行测试.

29510

Git常用命令使用大全

目前开发新项目使用版本控制工具基本用都是Git,老项目用还是Svn,网上Git资源也很多,多杂。我整理了一份关于Git学习资料,希望能帮助正在学习Git同学。...src/main/webapp/ui-libs 初始化模块:$ git submodule init ----只在首次检出仓库时运行一次就行 更新子模块:$ git submodule update...'来标记这个被你还原版本,那么以后你想查看该版本时,就可以使用 revert_version标签名,不是哈希值了 Git 之所以能够提供方便本地分支等特性,是与它文件存储机制有关。...因此,Git只需要代码根目录下这一个.git目录就可以记录完整版本控制信息,不是像SVN那样根目录和子目录下都有.svn目录。那么下面就来看一下Git与SVN区别吧。...2)分布式提交 Git 可以本地提交代码,所以在上面的图中,Git有利于将一个大任务分解,进行本地多次提交 SVN只能在本地进行大量一次性更改,导致将来合并到主干上造成巨大风险 3)日志查看

62910

公共模块管理之 Git Submodule 使用总结

其实在 git submodule 之前,我们也许都曾有过相似的经历:开发一个新项目,需要用到团队公共库,但是又不想把公共代码提交到自己项目时,会考虑在当前工作目录下,将公共模块文件夹加入 .gitignore... git submodule 实现就是自动维护主项目和子项目之间依赖关系。...,子模块需要在主工程项目中频繁调试迭代,由于 npm 包在主工程忽略文件列表 node_modules 中,只能切换到独立模块工程中开发, git submodule 子模块整个工程都直接在主工程下目录下...2.2 获取 submodule 使用 git submodule add 命令会自动拉取工程项目代码指定目录,但其他开发者获取主项目代码时,使用 git clone 命令是不会拉取到子项目的代码...,必须运行两条命令: $ git submodule init # 初始化本地配置文件 $ git submodule update # 检出对应 commit id 子项目 也可以在 clone

5.1K180

Git 基本操作

init 在当前目录初始化仓库 git init [path] 初始化仓库 git init [path] --bare 初始化一个裸仓库 Git不关心你是从一个完全空白目录还是由一个装满文件目录开始...裸版本库可以简单地看做git目录内容。换句话说,不应该在裸版本库中进行提交操作。 按照惯例,裸版本库名有个.git 后缀。这不是必需,但认为这是最佳实践。...常见一种用法是用HEAD或者一个特定分支名作为commit $ git diff --cached commit (或 --staged Git 1.6.1 及更高版本上允许使用,效果相同),...如果省略 commit这一项,则默认为HEAD,使用HEAD,该命令会显示下次提交会如何修改当前分支。 注:如果拼接上 -- [filename] 表示比较特定文件差异。...如果所有修改都暂存了并准备提交,--cached将是满,git diff则什么都不显示。

41120
领券