辛星浅析git中的submodule

有时候,我们需要将一些通用的部分抽取出来做成一个公共库,它可以给别的工程使用,而公共代码库的版本管理是比较麻烦的。我们可以使用git中的submodule来做到这一点。

1.添加

为当前工程添加submodule,命令格式是:git   submodule   add   仓库地址    路径

在添加完成后,在当前工程路径下会生成一个名为".gitmodules"的文件,它记录了子模块的信息,添加完成之后,将子模块所在的文件夹添加到工程中即可。

2.删除

删除submodule,我们首先在.gitmodules文件中删除相应的配置信息,然后执行git  rm -cached命令将子模块所在的文件从git中删除即可。

3.更新

我们使用git  submodule   update即可更新子模块。

4.注意

当使用git  clone下来的工程中带有submodule时,初始的时候,submodule的内容不会自动下载下来,我们执行git  submodule  update   --init   --recursive才行。

时间: 2024-12-26 03:52:39

辛星浅析git中的submodule的相关文章

辛星浅析git中的版本回退

首先需要说的就是commit  id,它和svn不同,git的commit id不是1,2,3...这种递增的数字,而是一个SHA1计算出来的一个非常大的数字,它用十六进制来表示,因为git是分布式的版本控制系统,所以就只能用这种方式了. 在git中,我们用HEAD表示当前版本,上一个版本就是HEAD^,上上个版本就是HEAD^^,如果我们前100个版本就是HEAD后面跟100个^,但是我们通常不这么写,我们通常写成HEAD~100. 而且我们回退使用git  reset命令,比如我们要回退到上

辛星浅析git中的代码撤销与回退

1.回退到最近一次提交的状态使用  git  reset  --hard   HEAD 命令,这里的--hard表示删除自从该次提交后所有的修改记录,未跟踪的文件除外,如果需要保留目前的修改,则执行git  reset  --soft  HEAD. 2.回退代码到某次指定的提交状态,我们使用git  reset  --hard  <hashcode> 命令,这里的hashcode是该次提交的哈希码.git没有办法回退单个文件到某次提交状态,如果确实需要这么做,那么应该先取得某次提交时该文件的内

辛星浅析git中查看某个文件的历史

有时候我们在比对代码的时候,会看到一些改动,但是不清楚这个改动的具体内容的话,我们通常可以通过如下步骤来执行: (1)使用git  log来查看某个文件的变化,需要注意的是这里我们只关注某个文件的变化,而不是整个git库,否则就无从看起了. 我们在git  log后面接文件名即可,范例如下: [email protected]:/root/xin# git log --pretty=oneline MessageItem.java 27209385caf678abe878375a470f4edd

辛星浅析git blame的使用

git  blame可以显示该文件的修改.以及作者上次修改文件的内容.他不会告诉我们文件中被删除以及被替换的内容,要详细的知道,我们还需要配合git  diff的使用. 下面是我们在git中创建了一个aa文件,然后是三次commit提交,以及只属于工作目录的修改. 我们用git  blame来查看一下效果: $git blame aa ^2cae297 (xin 2013-06-02 17:56:14 +0800 1) The beginning is to learn git blame ^2

辛星浅析git init中的--bare选项,也就是裸仓库

通常如果一个仓库作为远程仓库使用的时候,我们初始化的时候通常是git  init  --bare,首先解释一下这个bare,它翻译成汉语即"裸的",他之会生成一类文件,用于记录版本库历史记录的.git目录下面的文件,而不会包含实际项目源文件的拷贝,因此该版本库不能称为工作目录(working  tree). 当不使用--bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本记录文件就存放在.git目录下,而使用--bare选项时,就不再生成.git目录,而只是生成.g

辛星浅析网站中的sitemap

所谓sitemap,通俗来说就是"网站地图",sitemap文件主要包含了网站中的有效连接,它会便于搜索引擎的抓取和收录,如果没有sitemap文件,蜘蛛就需要一个一个的通过我们网站中的超链接来进行抓取.有了sitemap之后,搜索引擎直接读取该文件就可以了,它可以让搜索引擎抓取我们的网页更加有效. 最通用的也是最简单的sitemap形式的文件,就是xml文件,我们在其中列出网站中的网址,以及关于每个网址的一些元数据.这些元数据通常是上次更新的时间.更新的频率.重要程度等等,它可以让搜

辛星整理git中的tag

标签可以针对某一时间点的版本做标记,常用于版本发布. 1.列出标签. 使用git  tag可以在控制台中打印出当前仓库的所有标签. 使用git  tag  -l   通配符  可以搜索出符合当前模式的标签. 2.打标签. 通常标签可以分为:①轻量级标签.②附注标签.③签署标签. 轻量级标签是指向提交对象的引用.附注标签则是仓库中的一个独立对象. 创建轻量级标签不需要传递参数,直接指定标签名称即可. 创建附注标签时需要使用参数a,a是annotated的缩写,指定标签类型,后面跟标签名. 创建附注

辛星浅析Redis中与key有关的命令

在Redis中,我们还可以直接对key直接操作,下面是我们常用的主要命令: (1)keypattern   它表示获取所有匹配pattern的keys,这里需要注意的是,我们应该避免使用该命令,因为对于大型数据库而言,该命令非常耗时,对Redis服务器的性能打击也是比较大的.它支持glob-style的通配符格式,比如用*表示任意一个或者多个字符,用?表示任意字符,用[xyz]表示方括号中的任意一个字母. (2)del   key ....   它是从数据库中删除参数中指定的keys,如果指定的

辛星浅析Redis中的配置文件

Redis中的主要配置项如下: (1)daemonize  yes     它表示是否在后台运行,如果写成yes,那么在后台运行,如果是no,则表示不在后台运行. (2)pidfile  /var/run/redis.pid 当Redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,我们也可以在运行多个Redis服务时,指定不同的pid文件和端口 (3)port    6379    指定Redis运行的端口,默认是6379 (4)127.0.0.1