Category Archives: git

git删除本地和远程tags

又用到了删除git仓库的tags,

删除本地tag:

git tag -d v0.1

只删除本地的没有用,下次fetch的时候还会拉下来,再删除远程仓库中的tag,跟删除远程分支的语法类似

git push origin :refs/tags/v0.1

git简明操作教程

我发现很多人依然对git无所适从。那我就写个简明操作教程来供还在学习路上的同学参考。

git工作原理:

  1. 分布式,每个克隆或更新远程仓库的用户都拥有⼀一份最新的完整的仓库。
  2. 分支结构,不要直接操作remote的远程分支,应该首先checkout⼀一份到本地分支。远程分 支是指与远程仓库上同步的分支。而你所有的操作应该是在你的本地分支上操作。
  3. 时刻记得你在那个分支下工作,因为你切换到任何分支都不会改变本地目录
  4. “origin”代表远程仓库,为默认的远程仓库别名
  5. git的分支仅仅是⼀一个提交的标记,而不是目录,与svn的目录式分支结构不同
  6. 仓库的意义是整个代码仓库,本地分支/远程分支,都是你本地仓库中的分支

git常用操作命令及解释

注:以下所有以$开头的,为命令行操作,$之后的是命令, #号之后是注释

1.克隆一个仓库

$ git clone git@youdomain.com:project.git #相当于svn checkout

Continue reading

git flow 应用于已经存在的项目

前提:团队协作时,使用git来管理代码仓库,使用git-flow这个扩展来实现分支模型。并且已经把master和develop分支推送到远程仓库。

那么在用户新克隆了代码仓库时,如果直接用git flow init来初始化项目,就会出现问题,因为刚克隆下来的仓库默认分支是master。会把master的代码自动创建一份develop分支。而不是真正远程仓库中的develop分支。所以要先切换到develop分支上,再运行git flow init.

然后git flow就会提示你确认一堆分支名字及前端,一路回车默认即可。即完成了git flow对仓库的初始化。

git clone git@youdomain.com:project.git #克隆仓库
git checkout -b develop origin/develop #切换到develop分支
git flow init #初如化git flow

使用gitosis来管理git项目和用户

git依赖包 gcc zlib-devel,以下安装基于Centos,同时,很多人可能会同时使用多个私钥,由于私钥默认为id_rsa,所以如果使用多个公钥的话,需要在~/.ssh 目录下创建一个config文件,其内容后面会给出demo.

下载并安装git:

wget http://git-core.googlecode.com/files/git-1.7.7.tar.gz
tar -zxvf git-1.7.7.tar.gz
cd git-1.7.7
yum install -y gcc zlib-devel
./configure
make
make install
cd ..

安装gitosis
安装python安装工具

yum install python-setuptools

克隆gitosis仓库

git clone git://eagain.net/gitosis
cd gitosis
python setup.py install

本地生成公钥和私钥

ssh-keygen -t rsa -f gitserver.com #生成名为git_server.pub的公钥,一路回车
scp ~/.ssh/git_server_rsa root@xxx.xxx.xxx.xxx:/tmp/ #上传ssh public key到服务器

初始化gitosis

adduser git #创建git用户和组
su - git #切换到git用户
gitosis-init < /tmp/gitserver.com.pub
su root
rm /tmp/gitserver.com.pub

本地配置,可以同时拥有多个私钥,如果有多个私钥,就设置多个Host:

vim ~/.ssh/config

config文件内容

Host gitserver.com
Compression yes
IdentityFile ~/.ssh/gitserver.com

获取并配置gitosis-admin:
#在本地执行,获取gitosis管理项目
git clone git@giterver.com:gitosis-admin.git

剩下的就是编辑gitosis.conf配置文件,以及将用户的公钥,记得是公钥,以.pub结尾的公钥放入keydir目录中。

可以参考这里:http://progit.org/book/zh/ch4-7.html