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

Git Pro深入浅出(二)

重置揭密 (1)三棵树 理解reset和checkout的最简方法,就是以Git的思维框架(将其作为内容管理器)来管理三棵不同的树。...子模块允许你将一个Git仓库作为另一个Git仓库的子目录。它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。...(5)在子模块与主项目中同时做修改 到目前为止,当我们运行 git submodule update从子模块仓库中抓取修改时,Git将会获得这些改动并更新子目录中的文件,但是会将子仓库留在一个称作“...# 移除目录 $ git clean -fdx 当再次切回到有子模块的分支,需要重新初始化子模块 $ git checkout add-crypto $ git submodule update --init...问题二:将子目录转换为子模块的问题 如果你在项目中已经跟踪了一些文件,然后想要将它们移动到一个子模块中,那么请务必小心。

1.2K31

Git 常用指令笔记,pycharm+gitlab,保姆级笔记

前言 其实,我不用指令来管理代码版本,毕竟Pycharm提供的version control工具这么好用,效率这么高,还用啥指令嘞,但是吧,一切为了准备面试。...然后记得cd切换到到项目目录 2....切换分支 指令 git checkout 操作 我们现在切换到刚刚新建的dev分支,执行指令git checkout dev,并查看本地分支 Tip:可以使用git checkout -b 新建并切换到该分支...查看(文件的)状态报告 指令 git status 操作 执行指令git status,可以查看未提交至暂存区以及发生更改的文件 Tips: 在提交(commit)代码之前,我们需要将发生变化的文件...,这个.就表示当前文件夹下的所有文件,也可以直接换成文件名,只添加这一个文件。 通过status可以看见,该目录下所有文件以及子目录的文件都添加进暂存区。 7.

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

    Git学习-08

    一.分支管理1.为什么需要 git 分支?...使用 Git 分支有几个重要的原因,它们有助于更好地组织和管理软件开发过程:并行开发: 分支允许团队在不互相干扰的情况下并行开发不同的功能或修复不同的 bug。...当发现主分支上的 bug 时,可以创建一个新的分支用于修复,然后将修复合并回主分支。这有助于保持主分支的稳定性,同时允许在其他分支上继续工作。版本控制: 分支可以用于管理不同的软件版本。...dev_3 分支git checkout -b dev_37.将指定分支合并到当前#将分支dev与当前分支进行合并git merge origin/dev8.切换到 dev 分支#切换到本地dev分支git...子模块(Submodules):允许将一个 Git 仓库作为另一个 Git 仓库的子目录。工作流:Git 支持多种工作流,如集中式工作流、功能分支工作流等。

    7700

    goweb开发学习(一)

    (workspace,也就是GOPATH环境变量指向的目录) GO代码必须在工作空间内。...工作空间是一个目录,其中包含三个子目录: src —- 里面每一个子目录,就是一个包。包内是Go的源码文件 pkg —- 编译后生成的,包的目标文件 bin —- 生成的可执行文件。...这里,我们在/home目录下, 建立一个名为gopath(可以不是gopath, 任意名字都可以)的文件夹, 然后再建立三个子文件夹(子文件夹名必须为src、pkg、bin)。...zlib-devel gcc perl-ExtUtils-MakeMaker 2、删除已有的git  yum remove git 3、下载git源码 (1)切换到你的包文件存放目录下,cd /usr.../configure prefix=/usr/local/git/ (4)编译并且安装 make && make install 4、将git指令添加到bash中 vi /etc/profile 在最后一行加入

    1.4K100

    Git 中一个类似 Composer 的工具(二) – Subtree

    从 Git 1.5.2 开始,Git 新增并推荐使用 Git Subtree 这个功能来管理子项目 Git Submodule 和 Git Subtree 都是官方支持的功能,不具有依赖管理的功能,但能满足我们的要求...> git subtree split --prefix= [OPTIONS] [] --prefix之后的=等号也可以用空格 在父仓库中新增子仓库 例:执行以下命令将git-submodule...添加到git-subtree中 语法:git subtree add --prefix 子目录名> 子仓库名> $ git subtree add --prefix git-submodule...语法:git subtree pull --prefix 子目录名> 子仓库名> $ git subtree pull --prefix git-submodule git@github.com...语法:git subtree push --prefix 子目录名> 子仓库名> # 执行正常 git add 以及 git commit # 推送到 git-submodule 仓库

    77130

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

    子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。...Git两种子仓库使用方案 git submodule git subtree git submodule(子模块) Git子模块允许我们将一个或者多个Git仓库作为另一个Git仓库的子目录,它能让你将另一个仓库克隆到自己的项目中...在Git 中你可以用子模块submodule来管理这些项目,submodule允许你将一个Git 仓库当作另外一个Git 仓库的子目录。这允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立。...mode是100644,但是对于lib子仓库的确是一个commit对象, file mode为160000,这是Git中一种特殊的模式,表明我们是将一次提交的commit记录在Git当中,而非将它记录成一个子目录或者文件...我们假设你一开始在主仓库并没有采用子模块的开发方式,而是在另外的开发分支使用了子仓库,那么当你从开发分支切回到没有采用子模块的分支的时候,子模块的目录并不会被Git自动删除,而是需要你手动的删除了。

    2.8K10

    化繁为简的企业级 Git 管理实战(二):多分支子模块持续集成

    方案三:自动更新子模块 commit id 前面两种方案走不通,我开始思考:Git 难道就没有关于子模块持续集成的 best practice 吗?...直到我看到了 blahgeek 的这篇文章 ,里头提出用 commit id 的改动来触发工程更新,顿时恍然大悟:Git 本身建议通过在主工程记录子模块的 commit id 来控制子模块的版本。...唯一的难点在于怎么将每个 bare repository 与该 working repository 里的每个子模块相关联。...另外一个问题是,自从启用了这种方案,我们服务器上的构建任务一下子爆增。一个子模块的代码推送可能会触发多个构建任务,而我们目前负责持续集成的机器还很少。...Gitlab 将根据该 Runner 的标签为其安排相应平台的构建任务: $ gitlab-ci-multi-runner start 年底我们将统计出 Gitlab 上这些 Runner 的构建次数

    1.7K20

    git 子模块在项目中的使用

    在公司的项目中, 经常会遇到一些公共的内容, 多个项目中间通用的, 不可能每次都将整个代码复制一遍, 遇到这种情况有很多不同的解决方案, 一般来说, 项目是通过 git 来管理的, 巧了, git 也同样支持子模块...由于git对于子模块的管理并不是基于分支, 而是基于commit id的. 这对于引用第三方库是可以理解的, 毕竟需要一个稳定的版本嘛. 但是对于公司这种需要频繁更新的项目, 就有些混乱了....如此一来, 那就只有一个办法, 不同分支指定不同的commit id, 这也是我能想到的最清楚,最符合流程的方式了. 也就是说, 子模块也切为dev, master两个分支, 也正常进行合并....而对于父项目来说, 将子项目切换到不同的分支, 每次提交之后, 将子模块分支拉取到最新, 然后将commit id提上去, 不就解决了么......将子模块分支切到master: git checkout master 将子模块产生冲突的提交新建一个分支: git branch merge_tmp a8f5f8c 将子项目合并到master: git

    1.2K30

    Android组件化面试题之组件化如何进行版本控制和依赖管理?

    Git Submodules 是 Git 的一个功能,它允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。...这个功能在组件化开发中非常有用,因为它允许你将项目分解为多个独立的模块,每个模块都有自己的版本控制历史和依赖关系,同时还能被主项目引用。...版本控制:子模块可以有自己的提交历史,主项目中的变更不会影响子模块的历史。 依赖管理:可以精确控制子模块的特定版本。...合并冲突:在主项目和子模块之间可能存在合并冲突,需要额外注意。 在组件化中的应用 在组件化开发中,你可以将每个业务模块或功能模块作为一个独立的 Git Submodule 来管理。...> git commit -m "Update submodule to latest commit" 切换子模块版本:如果你需要切换到子模块的不同版本,可以使用 git submodule 命令。

    10510

    Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍...----每次更新或切换分支后都需要运行一下 删除子模块:(分4步走哦) 1) $ git rm --cached [path] 2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉...3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉 4) 手动删除子模块残留的目录 5)忽略一些文件、文件夹不提交 在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件...、tags四个子目录,分别存储对不同的根、远程版本库、Git栈和标签的四种引用,你可以通过命令'git show-ref'更清晰地查看引用信息;logs目录根据不同的引用存储了日志信息。...因此,Git只需要代码根目录下的这一个.git目录就可以记录完整的版本控制信息,而不是像SVN那样根目录和子目录下都有.svn目录。

    57440

    化繁为简的企业级 Git 管理实践(一):多分支子模块依赖管理

    介绍面向复杂工程的简单化 Git 分支依赖管理方案。我们对子模块的使用进行了简化,避免了由于漏提交子模块 commit id 或子模块代码导致无法更新或更新错误的情况。...Git submodule 的问题 Git 提供了 submodule 来支持子模块的需求,使用它可以很方便的将多个独立仓库包含到同一个主工程中: $ git init $ git submodule...其次,如前面所说,使用 git submodule update 更新子模块后,子模块将被切换到一个指向父工程维护的 commit id 所指定的游离状态: bash-3.2$ git submodule...当使用 fmanager 切换分支时,fmanager 将首先完成主工程的分支切换,然后读入该分支下的 modules.json ,再根据 modules.json 的配置逐个切换到各自模块的指定分支。...使用 fmanager 更新工程和切换分支相似,只是顺便完成了子模块的 git pull 操作。 这样的子模块管理策略看起来有点“激进”:永远使用分支最新的代码状态。

    2K20

    Git学习-05

    branch -a#切换到 devgit checkout dev#暂存所有更改git add ....origin master#将本地修改的代码提交到远程的 dev 分支上git push origin dev#切换到 master 分支git checkout master2.master 运行#...将 dev 分支的代码合并到 master 上git merge dev#将当前的更改推送到远程的 master 分支上git push origin master执行完以上命令,此时 dev 分支与...Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创建,用于有效、高速地处理从小到大的项目版本管理。Git 是目前世界上最流行的版本控制系统之一,广泛应用于软件开发中。...子模块(Submodules):允许将一个 Git 仓库作为另一个 Git 仓库的子目录。工作流:Git 支持多种工作流,如集中式工作流、功能分支工作流等。

    9010

    Theano 中文文档 0.9 - 5.2 Mac OS安装说明

    修复’lib’路径 添加’lib’子目录(如果你有一个64位操作系统,则为“lib64”子目录)到你的$LD_LIBRARY_PATH环境变量。...修复’lib’路径 添加’lib’子目录(如果你有一个64位操作系统,则为“lib64”子目录)到你的$LD_LIBRARY_PATH环境变量。...user用于用户安装,不需要管理员权限。它将Theano安装在你本地的site-packages中。 [test]将安装测试需要的包。 [doc]将安装生成文档需要的包。...在这一点上,如果你还没有这样做,最好关闭并重新启动你的终端,以确保所有配置更改都被正确考虑。 之后,请检查在Python中导入的scipy模块是否正确(并且是最近的模块)。...user用于用户安装,不需要管理员权限。它将Theano安装在你本地的site-packages中。 [test]将安装测试需要的包。 [doc]将安装生成文档需要的包。

    1.3K10

    【黄啊码】关于版本控制,你选Git还是SVN(git和svn的比较)

    分支下的子目录,而不是整个仓库,而git只能checkout整个分支。...在git中,因为存在index的概念,要将一个文件纳入版本管理的范畴,首先是要用git-update-index –-add将文件纳入index的监控范围,只有更新到index中的内容才会在commit...在git中,似乎没有这样的命令,不过,由于git的本地仓库信息完全维护在project根目录的.git目录下,(不像svn一样,每个子目录下都有单独的.svn目录)。...这样我的修改不会影响主干的内容,而同时又能随时更新主干上的最新内容。不仅方便工作,也有利于权限控制。一切都是自动的,方便!...(也或许要实现多分枝协同工作,在Git中还有其它不同思路的更巧妙的办法?) 哪位高手知道解决办法的还请不吝赐教!git submodules 看起来是为了解决类似多个有依赖关系的模块的协同工作问题。

    63130

    浅析 Git 子模块

    ,其 git commits 混杂提交到主项目中,难以单独清晰的管理 一个虽然不一定是最好的,但可行的办法是: 1.2 - Git 中的 submodule 子模块(submodule)允许你将一个 Git...仓库作为另一个 Git 仓库的子目录; 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立 简单的说,子模块的解决方案更像是上面两种的融合,类似于一种特区模式:代码既存在于主项目的子文件夹中...,可以灵活的为我所用;在 Git 层面又是独立提交管理的,和主项目的 commit 时间线保持了完全的独立性。...subtree 用法如下: 4.1 - 第一次添加子目录,建立与 git 项目的关联 # 其中-f意思是在添加远程仓库之后,立即执行fetch git remote add -f 子仓库名> 子仓库地址...--prefix之后的=等号也可以用空格 git subtree add --prefix=子目录名> 子仓库名> --squash 4.2 - 从远程仓库更新子目录 git fetch

    1.4K10

    vivo官网App模块化开发方案-ModularDevTool

    (注:为什么这么分,可以参考之前的一篇文章《Android模块化开发实践》)二、痛点完全隔离的代码仓,使每个模块更独立,更易于代码管理,但也带来了一些问题。...最终开发了ModularDevTool,实现以下功能:1、开发阶段1.1、在主仓中,管理所有子仓代码(拉代码、切分支及其他git操作),管理子仓相关信息(代码仓路径、分支、版本等);1.2、只需要打开一个...五、关键功能实现ModularDevTool主要功能分为两类,一类是代码管理,用于批量处理git操作;第二类是项目构建,实现了动态配置子模块依赖、子模块发布等功能。...5.1 代码管理vsub.sh脚本中封装了常用的git命令,用于批量处理子仓的git操作,实现逻辑相对简单,利用shell脚本将git命令封装起来。比如 ..../vsub.sh sync命令将所有子模块的代码拉取到主工程的submodules目录中。

    79230

    Git Submodule项目子模块管理

    模块化与组件化 最近一直在研究客户端的组件化/模块化问题,除了将项目拆分为多个小的子模块,还会涉及到多个子模块管理的问题。下面说一些在模块化开发中的一些基本知识。...宿主层 宿主层位于最上层, 主要作用是作为一个 App 壳, 将需要的模块组装成一个完整的 App, 这一层可以管理整个 App 的生命周期(比如 Application 的初始化和各种组件以及三方库的初始化...Git Submodule Git Submodule 允许一个git仓库,作为另一个git仓库的子目录,并且保持父项目和子项目相互独立。...方法二 先进入子模块,然后切换到需要的分支,这里是master分支,然后对子模块pull,这种方法会改变子模块的分支。...删除子模块 删除子模块会涉及到以下几个步骤: 删除.gitsubmodule里相关部分; 删除.git/config 文件里相关字段; 删除子仓库目录。

    90320

    基于hexo的博客项目基本操作

    ,将子仓库作为父仓库的一个文件夹进行托管,随后正常commit、push(可通过对父仓库设定分支用于不同的代码范围版本管理)(基于这种操作,子仓库内容管理衍生为父仓库文件管理概念,与原有的子仓库无关)...hexo-theme-next.git 主题修改提交 # 设定了指定分支开发主题模块,则可提交相应代码到自己的仓库中,从而实现自定义主题备份概念 git commit -am "refine themes..._config.yml 中指定的远端仓库和分支中,并且完全覆盖该分支下的已有内容 ​ (注意使用git管理分支问题,区分部署目录和写作分支概念,推荐将站点目录和pages分别存放在两个不同的 Git...从而间接实现在github.io域名下通过不同的子目录管理不同的博客仓库数据 _config.yml配置 ​ 分析:对比原生配置,此处设定url和项目打包生成路径为对应子目录即对照为相应指定仓库的内容...,从而可通过子目录的方式访问博客信息 ​ 需注意的是此处发布子目录的概念不是在原有的github.io仓库下新增子目录存放文件信息,而是借助github.io平台自动转到相应的子仓库 本地访问路径

    69220

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

    在企业级项目开发中,对于较复杂的项目,不可避免地会引用一些公共基础库,或是将代码拆解成公共模块和多个子模块进行管理,主项目工程中的子模块需要对公共模块有依赖关系,却又不必关心公共模块内部的开发流程细节,...关于公共模块的管理有很多成熟的实践,常见的有 npm 和 git submodule 两类方式: 1.1 npm 等包管理工具 前端开发者对 Node.js 的包管理工具 npm 应该再熟悉不过了,此外...使用者使用起来也极为简单,一条命令搞定: $ npm install 1.2 git 子模块管理工具 submodule git submodule 能够在项目主工程中添加子工程模块...,子模块需要在主工程项目中频繁调试迭代,由于 npm 包在主工程的忽略文件列表 node_modules 中,只能切换到独立的子模块工程中开发,而 git submodule 子模块的整个工程都直接在主工程下目录下...因此,如果需要在主项目中开发子模块,建议还是把子模块切换到 master 分支进行开发提交,便于管理。

    5.8K180

    分支规范和git提交规范

    背景 前端所有工程目前只有一个dev分支在使用,新的版本的开发任务以及提测版本错误问题也全部在这个分支上进行开发,从而会导致很多问题出现,非常不利于版本的控制 下面用这张图来说明前端分支管理方法 main...+注释 git常用命令 git clone git clone url 克隆远程版本库 git checkout -b dev git checkout -b dev 创建开发分支dev,并切换到该分支下...添加当前目录的所有文件到暂存区 git add [dir] 添加指定目录到暂存区,包括子目录 git add [file1] 添加指定文件到暂存区 git commit git commit -m...init git子模块初始化 git submodule update git子模块更新 git pull/git fetch git pull 拉取远程仓库所有分支更新并合并到本地分支。...origin master 将本地分支的更新全部推送到远程仓库master分支。

    75620
    领券