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

Git必备命令-子模块

首次取带子仓库的代码方法: 仓库一起取: git clone --recurse-submodules 仓库地址 分开取: git clone 仓库地址 git submodule init...在主仓库更改仓库代码并提交方法: 3....更新、仓库代码方法: 目录中: $ git submodule update // 与主仓库中的子模块代码同步 $ git submodule update --remote // 与仓库中代码同步...在包含子模块的项目上工作 从子模块的远端取上游修改 如果想要在子模块中查看新工作,可以进入到目录中运行 git fetch 与 git merge,合并上游分支来更新本地代码。...modified: DbConnector (new commits) no changes added to commit (use "git add" and/or "git commit -a") 项目远端取上游更改

95320

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

可以端详官网:https://git-scm.com/book/zh/v2/Git-工具-子模块 多个级仓库都依赖同一个仓库,但是仓库自身不单独进行修改,而是跟随级项目进行更新发布,其他依赖仓库的项目只负责取更新即可...,Git获取到模块的commit值发生变化,从而记录了这个Git指针的变化。...在暂存区所以我们才发现了new commits这种提示语,Git并不关心子模块的文件如何变化,我只需要在当前提交中记录子模块的commit的hash值即可,之后我们从父级仓库仓库的时候,Git取了本次提交记录中的子模块的...如果你仅仅引用了别人的子模块的游离分支,然后在主仓库修改了仓库的代码,之后使用git submodule update取了最新代码,那么你在仓库游离分支做出的修改会被覆盖掉。...我们假设你一开始在主仓库并没有采用子模块的开发方式,而是在另外的开发分支使用了仓库,那么当你开发分支切回到没有采用子模块分支的时候,子模块的目录并不会被Git自动删除,而是需要你手动的删除了。

2K10
您找到你想要的搜索结果了吗?
是的
没有找到

git 子模块在项目中的使用

创建子模块 git submodule add git@gitee.com:hujingnb/submodule_son.git submodule_son 指定子项目地址, 后面的参数可以更改模块的路径...而对于项目来说, 将子项目切换到不同的分支, 每次提交之后, 将子模块分支取到最新, 然后将commit id提上去, 不就解决了么......流程如下: 切换子模块分支: git submodule foreach git checkout master 将子模块分支取到最新: git submodule foreach git pull...如此一来, 子模块的管理就和正常流程一致了, 将不同环境代码合并到不同分支, 分别取对应分支代码即可....先说一下我是如何制造冲突的: 项目与子模块分别分支: master_tmp 项目与子模块切回master分支模块修改文件并提交, 项目更新commit id 此时父子都回到master_tmp

1.1K30

Git 进阶使用1

推送自己的分支到远端的时候,现在的分支情况如下: 然后呢,当Anna也进行推送的时候,她会得到如下的提醒,Git提醒Anna她本地的版本与远程分支并不一致,需要向远端服务器取代码进行同步: 在Anna...提交之前,分支中的Commit序列是如下这样的: A--B--C--D' origin/feature // GitHub A--B--D--E feature // Anna...submodule update 更新子模块为远程项目的最新版本 git submodule update --remote 克隆包含子模块的项目 克隆包含子模块的项目有二种方法:一种是先克隆项目...克隆项目,再更新子模块 克隆项目 git clone https://github.com/maonx/vimwiki-assets.git assets 查看子模块 git submodule...) 或者,我们可以使用 git stash apply 将之前隐藏的更改重新应用到工作副本,但是和 git stash pop 不同, 并不会将他们stash中删除 $ git stash apply

71041

Git实战

保留组件的现有目录结构的完整性,故而git创造了类似于maven中的module一样的功能,来实现子模块的管理 打个比方:现在我有一个工程A,其工程路径下面有五个工程BCDEF,按照往常是要git...文件.gitmodules存放在工程根目录下 [submodule "others/B"] path = others/B url = https://rep.XXX.com/crm/B.git...添加子模块 git submodule add [远程仓库地址] [相对于模块的相对路径] 注: 直接手动更改gitmodule文件是没有用的哦 远程仓库地址要先于子模块之前准备好 子模块的名称是可以与...[相对于模块的相对路径]不一致的 创建完成以后会生成.gitmodules与.gitattributes这两个文件 .gitmodules和.git/config保存着子模块的信息 远程仓库获取所有模块数据...#方式一 git clone --recursive [远程仓库地址] #方式二 git clone [远程仓库地址] cd [模块路径] git submodule init git submodule

83410

简介GIT

提交到远程仓库之前: 1.在github上创建一个远程仓库 2.创建ssh(公钥和密钥) 在本地上通过命令生成: ssh-keygen ssh-keygen -t rsa -b 4096 -C...:w3cteching/test1909_pro.git 5.将本地代码推送到远端仓库 git push -u origin master 如果git push报错,首先咱们先取到本地...:修复bug的分支 成员分支:成员名+功能模块分支常用命令 git branch 回车 git branch * master //注:前面有*代表是当前分支 创建分支 git branch...dev 切换分支 git checkout 要切换的分支名 切换并创建分支 git checkout -b分支名 合并分支 git merge 要合并的分支名 合并时可能会出现冲突: 如果本地分支合并出现冲突...//未合并过的用-D删除 如何将本地分支推送到远程 git push origin 要推送分支名 注意:如何默认推送当前分支到远端 git push --set-upstream origin dev

53220

浅析 Git 子模块

分支 git checkout stable 然后从上游取新的内容,此时有两种选择: # 选择A:合并 git submodule update --remote --merge # 选择B:变基...git submodule update --remote --rebase 2.5 - 发布子模块变更 因为主项目并不会跟踪子模块中的变更,也就是说子目录中更改的具体业务文件不会在 push 时被自动发布.....0000000 --- a/3RD_LIB_GIT_PATH +++ b/3RD_LIB_GIT_PATH # 进入子模块目录 $ cd 3RD_LIB_GIT_PATH # 基于 git diff...Tom's Changes" 2.7 - 删除子模块 .gitmodules 文件中删除相关的行 .git/config 中删除相关部分 运行 git rm –cached 删除...--prefix之后的=等号也可以用空格 git subtree add --prefix= --squash 4.2 - 远程仓库更新子目录 git fetch

1.3K10

Git常用命令参考手册

, -b 指定分支名字,实际上是克隆所有分支并切换到 develop 分支上 git clone -b develop https://github.com/xjh22222228/git-manual.git...子模块可以不建立版本分支管理代码, 因为它是依赖主应用,所以建立版本分支可以主应用去操作,那么一旦建立新的版本分支当前的所有内容都会被锁定在这个分支上,不管子模块仓库怎么修改。...# 递归抓取子模块的所有更改,但不会更新子模块内容 git pull # 这个时候需要进入子模块目录进行更新, 这样就完成了一个子模块更新,但是如果有很多子模块就比较麻烦了 cd git-manual...git subtree 劣势: 命令过于复杂, 推送取都很麻烦 虽然用于替代子模块, 但使用率并没有子模块广泛 仓库和主仓库混合在一起, 历史记录相当于有2个仓库的记录 git subtree 命令用法...://github.com/xjh22222228/B.git 3、删除刚刚克隆的旧仓库 rm -rf A 4、取新仓库 git clone https://github.com/xjh22222228

1.3K60

git 系列 — git submodule 命令及其用法

例如,在 git-main-project 根目录下执行: git submodule add git@github.com:ZhangDaZongWei/git-submodule-project.git...更新主项目 当更新主项目时,也要兼顾到子模块的更新: # 更新主项目,例如 git pull 但是这样只会取到模块 commit 变更记录,并不会主动更新子模块,还需要执行: # 参数 --init...--recurse-submodules 更改模块 更改模块时,需要注意的是一定要 checkout 到某一个具体分支,因为当在主项目中使用 git submodule update 命令更新子模块时...# 进入子模块 cd git-submodule-project # checkout 分支 git checkout {branch} # 做一些更改后 git add . git commit -m...确保 push 子模块 有时当更改完子模块后,忘记了 push,但是在主项目更改后却 push 了,所以远程仓库的子模块未更新,导致其他人不会获取子模块的更新,可以使用以下命令防止这种情况: # 在主模块

2.6K20

Git Pro深入浅出(二)

在项目中使用子模块的最简模型,就是只使用子项目并不时地获取更新,而并不在你的检出中进行任何更改。...# 设置其他分支取代码 $ git config -f .gitmodules submodule.t-module.branch develop $ git submodule update --...(5)在子模块与主项目中同时做修改 到目前为止,当我们运行 git submodule update从子模块仓库中抓取修改时,Git将会获得这些改动并更新子目录中的文件,但是会将仓库留在一个称作“...接着,若你做了更改就需要告诉Git它该做什么,然后运行 git submodule update --remote 来从上游取新工作。...checkout -b featureA' (7)子模块的问题 问题一:在有子模块的项目中切换分支可能会造成麻烦 如果你创建一个新分支,在其中添加一个子模块,之后切换到没有该子模块分支上时,

1.1K31

7.11 Git 工具 - 子模块

模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个项目的库。...取上游修改 在项目中使用子模块的最简模型,就是只使用子项目并不时地获取更新,而并不在你的检出中进行任何更改。 我们来看一个简单的例子。...接着,若你做了更改就需要告诉 Git 它该做什么,然后运行 git submodule update --remote来从上游取新工作。...你可以选择将它们合并到你的本地工作中,也可以尝试将你的工作变基到新的更改上。 首先,让我们进入子模块目录然后检出一个分支。...也就是说,如果子模块的历史已经分叉并且在项目中分别提交到了分叉的分支上,那么你需要做一些工作来修复它。

1.4K20

三年 Git 使用心得 & 常见问题整理

# 删除本地分支,会阻止删除包含未合并更改分支 $ git brnach -d branchname # 强制删除一个本地分支,即使包含未合并更改分支 $ git branch -D branchname...它是在提交记录最后面加上一个撤销了更改的新提交,而不是项目历史中移除这个提交,这避免了 Git 丢失项目历史。 「撤销(revert)应该用在你想要在项目历史中移除某个提交的时候」。... git submodule 子模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。也许是第三方库,或者你独立开发的,用于多个项目的库。...] # 当你在克隆这样的项目时,默认会包含该子项目的目录,但该目录中还没有任何文件 # 初始化本地配置文件 git submodule init # 当前项目中抓取所有数据并检出项目中列出的合适的提交...Git」 「如何在大型项目中使用Git子模块开发」 「Github API 调用 (v3)」 www.jianshu.com/p/a0c7d0482… developer.github.com/v3/guides

2.7K50

git 常用命令 git ssh 密钥如何生成

分享一下 git 有github 这个是开源的,个人的项目可以被别人看见的,公司的项目一定不能公开放上去,要有法律责任的 bitbucket.org coding gitee 等这些都是做私有仓库的...//切换分支 4、git pull origin feature 远程分支与当前分支合并 5、git fetch origin feature:feature 远程分支feature分支取到本地命名为...origin tags 将标签推送到服务器 9、git status 查看更改的文件 10、git add 更改的文件名 例如 git add html/index.html 添加更改的...index.html(按查看结果的路径走) 11、 git commit -m "备注" //添加备注并提交 git rm file url -r 12、git checkout –b...git checkout develop 切换到develop分支 三、分支 git fetch origin feature:feature 取feature分支 四、合并

9210

关于Git这一篇就够了

,无论做什么操作都建议使用分支,因为在团队开发中,master只有一个,合作开发里任何人都可以master里拉取代码,取时master后创建分支分支名改为你要做的操作,比如修改某某文件,修改什么什么...main分支 所以我们可以使用git clone -b分支名 仓库地址来指定分支 github提交本地仓库到远程仓库:git add、git commit、git push 我们修改了master上的分支代码...将别的分支修改转移到自己的分支:git cherry-pick 有的时候我们别的仓库分支下来,是有bug的分支,但是master修复了,我们分支仓库没有修复,但是我们难不成重复master操作去修改这个...git fetch 取后结果如下: 也可以取指定分支的最新内容: git fetch xxxx git子模块管理:git submodule 在当我们项目较大的情况下,都会使用模块化编程,把不同的业务功能分割成数个子模块...在提醒一下,若你使用的子模块版本是0.17,最新版本是2.13,当别人取你仓库时子模块也会是0.17不会变动。

66210

项目改用GoModules管理依赖的方法和经验总结

GOPROXY指定的镜像站点模块对应的软件包,转而去code.lazycorp.com取软件包。...Etcd比较诡异,它里面的bbolt库的模块名叫go.etcd.io/bbolt但是自己的源码使用这个库时在代码里使用的import路径却是github.com/coreos/bbolt。.../grpc v1.26.0 ) 模块的版本控制 模块的版本号会与软件包的tag相对应,比如上面的模块引用google.golang.org/grpc v1.26.0对应于grpc在GitHub上代码仓库的名叫...,引用公共软件包的项目需要上线的时候,就可以在公共软件包的master分支打出v1.2.30标签,将待发布项目中go.mod文件里的引用更改成正式版本即可。...此外如果公共包的代码仓库上不存在任何标签,go get默认取的是主干分支最新一次commit对应版本的代码,并且在go.mod文件里为模块分配格式为 v0.0.0-主干分支最新一次commit的时间-

93820

通过 GitExtensions 来使用 Git 子模块功能

: 这样提交信息就比较清晰了: 刚才如果只是点的 “提交”,那就再 “推送” 一下: 推送完成之后,看分支图上还是有一个虚线框的分支标记,这就是说明工程还是引用的上个版本的本模块: 我们再切换到工程...: 可以看到还是有可提交标志,这里其实是提交对子模块的引用信息(引用哪个提交版本)的更改: 提交界面如下(注意和之前的进行对比),显示了新旧的版本信息: 提交(未推送)之后再切到子模块,虚框分支标记就消失了...: 四、更新子模块 接下来演示一下更新子模块的操作,我们先复位一下工程,在上个提交上右键 --> 复位当前分支到此处: 复位方式这里选择 混合模式: 回到了如下状态: 由于我们之前提交子模块时勾选了...“在工程中载入” 选项,现在我们先在提交界面,右键 --> 更新子模块: 由于工程对子模块的引用并未更改(提交),所以此处更新子模块后,将会将子模块的提交索引复位(重新指向上个版本): 这样工程恢复如初...: 子模块的当前版本也复位了: 不过这样操作只是通过工程进行强行复位,可以看到上图中分支的下拉框已经变成 (no branch) 了,这是不好的。

58610

Git常用命令参考手册

, -b 指定分支名字,实际上是克隆所有分支并切换到 develop 分支上 git clone -b develop https://github.com/xjh22222228/git-manual.git...子模块可以不建立版本分支管理代码, 因为它是依赖主应用,所以建立版本分支可以主应用去操作,那么一旦建立新的版本分支当前的所有内容都会被锁定在这个分支上,不管子模块仓库怎么修改。...submodule add -b develop https://github.com/xjh22222228/git-manual.git # 克隆一个包含子模块的项目 --recursive 用于递归克隆...# 递归抓取子模块的所有更改,但不会更新子模块内容 git pull # 这个时候需要进入子模块目录进行更新, 这样就完成了一个子模块更新,但是如果有很多子模块就比较麻烦了 cd git-manual...://github.com/xjh22222228/B.git 3、删除刚刚克隆的旧仓库 rm -rf A 4、取新仓库 git clone https://github.com/xjh22222228

2.3K30
领券