centos

将git源码打包成rpm安装包(centos)

centos6系统里通过yum安装的git版本只有1.7.1,好多新特性都没有。而使用编译安装的话,每台服务器都要编译一遍太麻烦,以后更新起来也麻烦,所以决定自己打一个rpm包。 首先需要安装rpm-build yum install -y rpm-build 然后创建一个rpmbuild目录: cd ~ && rpmdev-setuptree 到https://github.com/git/git/releases下载git源码包,一定要下载.tar.gz版本的,rpmbuild需要这种格式。 先下载到home目录下 wget https://github.com/

  • Leo Chen
    Leo Chen
2 min read
git

git子树合并

公司的站点用的都是内部开发的一个框架,之前全部都是通过submodule的方式引入到具体项目中,但在使用过程中发现submodule十分不方便,从远端拉取更新时,并不会主动更新submodule的目录(除非加上–recurse-submodules参数),还得再手动执行一次git submodule update,如果忘记更新submodule,之后提交变更又会把submodule给退回旧版本,很容易出问题。 之前在参与progit翻译的时候看到git还有一个子树合并的功能,也能够实现在一个git仓库中引入另一个git仓库。 于是参照progit中的步骤,首次将框架的仓库引入到项目仓库中是OK的,但是从框架仓库拉取更新时报错 Automatic merge failed; fix conflicts and then commit the result. 于是搜索了下,发现stackoverflow上也有人遇到相同的问题,应该是progit的错误(也可能是git新版本修改了子树合并的操作),按照这个步骤操作就可以了。

  • Leo Chen
    Leo Chen
1 min read
git

记一次git误操作恢复全过程

我们团队使用git flow方式,和此次误操作有关的有3个分支:develop、feature/discuss和feature/search,两个feature分支都是从develop分支上拉出来的,feature/discuss先从develop分支拉出来,然后develop分支上有了新的commit(其他分支feature/other开发完毕合入develop),之后再从develop分支拉出feature/search分支。 本次事故实际上是由两次误操作导致的,第一次误操作是在feature/discuss分支上执行了 git pull origin feature/search 这就导致处于开发状态的分支feature/search被合入到feature/discuss,我在发现这个误操作之后立刻让同事撤销此次merge,我以为同事会使用 git reset --hard cab39f53 来撤销提交,

  • Leo Chen
    Leo Chen
3 min read
Apache

搭建http协议的git服务器

使用了一段时间的git,完爆svn,所以打算自己搞一个git服务器玩玩。 服务器用的是centos 5.8 64位。 首先要做的是安装git,比较偷懒,直接用yum,但是yum源里没有git,可以使用第三方源。 rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm yum install --enablerepo=webtatic git-all 然后是http服务器,选的apache,本来我是想用nginx的,后来试了一下,发现nginx自带的dav不支持git的push,

  • Leo Chen
    Leo Chen
2 min read