Posts Tagged ‘git’
1 git clone只会提取远程git仓库里已提交的信息,working tree和index file里的信息,git clone根本不会理会。如果你是经理,你让你的手下用git clone path/to/your/repo newrepo来将你的代码下载到他的本地就可以了,注意,他用此命令下载的是path/to/your/repo仓库中的当前分支的内容。当你的手下开 发完他负责的那部分代码之后,通知你。你用git fetch path/to/his/newrepo hisbranch:yourbranch 来将你手下的工作成果抓取到你本地的yourbranch分支上。待审核合格之后,你就可以用git merge来合并他的工作了。 2 想查看两个分支的区别,就用git whatchanged -p branch1..branch2。注意,-p表示以易理解的字符方式表示两者区别。如果不加-p的话,git会输出一些内部格式的区别信息,你根本看不 懂:) 3 git pull的用法至少有四种,一个是在git clone之后用git pull来同步;第二个用法是用git pull .来替代git merge命令;第三个用法是git pull /path/to/repo,将运程仓库的内容直接merge到当前分支中。第四种用法是在git pull /path/to/repo后面加上<src>:<dst>来指定源的分支和本地分支。 4 git里有四种对象:commit对象、tree对象、blob对象和tag对象 5 尽量不要用git-push,因为他类似于CVS的管理模式,而git的模式特点就是分布式,所以常用git pull代替git push。 6 git fetch <仓库路径> <分支信息>,用于从远程仓库获取代码。其中<分支信息>的格式是这样的 “<src>:<dst>”,<src>表示源的分支,而<dst>表示本地分支。如 果<dst>被省略,那么就默认为本地当前分支。 7 如果在当前分支有代码修改,但未commit,那么不允许git checkout到其他分支。 8 想从index file中删除一个登记文件,用git reset — filename [...]
Global setup: Download and install Git git config –global user.name “Your Name” git config –global user.email email@email.com Add your public key: ssh-keygen -C ‘email@email.com’ -t rsa 接着打开.ssh目录下的id_rsa.pub拷贝刚才生成的那串key,粘帖到github后台操作的SSH Public Keys里面 Next steps: mkdir test cd test git init touch README git add README git commit -m ‘first commit’ git remote add origin git@github.com:soone/test.git git [...]
折腾了几天的git安装总算搞定了,呼呼…… 原来使用git源码编译总是包libssl.a的一个问题,后来不停的折腾,上google折腾了好久,还重装了openssl都没有解决问题,最后是在没辙了,试着重新安装了openssl-devel,竟然git编译安装过去了,杯具阿,顿时内牛满面阿! ps:git安装还依赖于下面这些Lib,必须事先安装了这些库才行 zlib-devel openssl-devel perl cpio expat-devel gettext-devel curl xmlto asciidoc(asciidoc安装看这里) google了一下,还可以用另外一种方式安装git吧 重新开始。。。。 CentOS安装Git套件, 必须设定EPEL repository,这是一个由Fedora 社区打造,由为RHEL及衍生发行版提供高质量软件的项目,里面有软件还是比较丰富的,默认的没有git, 执行下面命令安装该库(EPEL): rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm #然后就是 yum install git –disablerepo=* –enablerepo=epel #启用epel的repository #然后:git –version git version 1.5.5.6 #返回git的版本号就表示安装好了
gitosis安装都OK后,以及管理人员在本地已经配置好了gitosis.conf文件,管理人员要将生成的公钥发给开发组成员放到他们的ssh目录下,这样他们就可以使用: mkdir test_git git init git add . git commit -a -m ‘init project’ git remote add origin git@server_host:test_git.git git push origin master 来初始化项目和push到服务器上
听说Git的跨平台做的不怎么样,在Windows上用起来不方便。真是这样吗? 今天在机房,用了一下Git。呃,即便我不用Git我都会装Git,是怎么回事呢? 原来Git for Windows还自带了MINGW32环境,真是太酷了! —– 到msysgit这个项目的主页:http://code.google.com/p/msysgit/,下载来只有8MB的Git 1.6(比TortoiseSVN小了一倍多),并且这个Git for Windows还具备Bash Shell(MINGW32)和GUI。 光是因为有Bash就足够令我兴奋了,因为再也不需要开CMD了。只要cd /e/TX,就进入我的工作环境(E:\TX)了。 而且这个环境还带了Vi编辑器。 下面是两张截图,用起来感觉跟Linux下一模一样,不知道哪里不方便了? GUI不截图了,可能没像TortoiseSVN跟Explorer集成,所以才认为Git for Windows不完善吧。 反正我觉得是相当适用了! 转载地址:http://imtx.cn/archives/931.html
呼~~~ 从查看git用法,到有建立GIT Host的想法,再到找相关资料和做实验,用了三天多才把一把都搞定,今天终于正常运行起来,并且上传了一个正在进行的小项目。 原来一直习惯SVN,对GIT挺排斥的,经过这一些建立GIT和试用,我竟然喜欢上这个分布式版本控制系统了,有必要把所有的项目都从SVN上转过来,只是不知道从SVN转过来能不能继承所有的版本更新信息和分支信息。 git本身提供了一个服务程序git-daemon,但是这是一个没的权限控制的程序,这样就不太适合把GIT服务暴露在不安全的环境中。 gitosis是基于SSHD为GIT服务提供权限控制的一个应用,更方便的是只需要系统中的一个用户,就可以完美的对多仓库多虚拟用户进行权限管理,在目前来讲git + gitosis绝对是最佳的组合了。 别的先不说了,下面简单讲一下如何在一台服务器上建立GIT HOST。 1、首先,先确定系统软件要求,python-setuptools,这个在不同Linux的发行版中可能名字不太一样, 在CentOS中叫做python-setuptools 安装 yum -y install python-setuptools 当然还要安装git,否则gitosis找谁工作呀? 2、安装GIT 现在的CentOS中好像不能直接yum install git了,我自己是不用CentOS系统的,不熟,不知道是git的名字在里面不同了还是怎么着,不过不要紧,去http://git-scm.com下载也一样,而且还能下载到尽可能新的版本 除 了git的rpm包之外,还依赖一个perl-Git,这个也需要下载相应版本的哦,另外,还要求perl-Error,这个可以去Google搜一下, 这里提供一个我用的下载地址。http://dag.wieers.com/rpm/packages/perl-Error/ 3、安装gitosis GIT和python-setuptools都准备好了,现在可以装gitosis了 # git clone git://eagain.net/gitosis.git 上面命令中git://这个协议其实就是上面提到的git-daemon提供的服务,默认是9418端口。 (从这一步就能明显感受到,git在网络同步代码的时候,速度很快,同样大小的源码仓库,git跟svn或cvs相比,所花去的时间可以忽略不计) 这几句废话说完的功夫估计代码也下载完了,现在 # cd gitosis # python setup.py install 如果没有出错提示就说明安装成功,整个工作也完成了大半了,再做最后一步,然后后面就全是操作git仓库的动作了 4、初始化gitosis 由于gitosis本身的配置和控制也完全是由git完成的,所以现在要初始化gitosis的工作环境,在这之前要先给你的gitosis在服务器上准备一个帐户 # useradd git (随便什么用名都成,建议用git,简短而且一目了然) 这个用户要不要密码都行,反正不是用来登录系统界面的。 另外还要你在工作机上准备一个公钥文件 $ ssh-keygen -t rsa (看清楚了,这一些是要在你工作的系统中运行的,而不是服务器) [...]
SVN,HG,GIT是三种常见的版本控制系统,本文简单列出一些相似的操作命令。当然,三种系统各有特点,严格的对应关系是没有的。 1,第一次下载,包括源码和版本库: svn checkout http://path/to/repo repo_name hg clone http://path/to/repo repo_name git glone http://path/to/repo repo_name或者git glone git://path/to/repo repo_name 2,下载服务器上最新的更新: svn update hg pull && hg update -C git pull 3,检出某个修订版本 svn checkout -r <rev> hg update -C -r <rev> git reset –hard -r <rev> 4,新增被跟踪文件 svn add /path/to/file hg add /path/to/file git add /path/to/file 4,移除被跟踪文件 svn [...]
便宜的本地分支 使 Git 从几乎所有 SCM 中脱颖而出并出并且最吸引人的特色,恐怕非它的分支模型莫属。 它完全不同于我在此用于比较的所有其他模型,那些模型所推荐的最佳分支方式仅仅是将库 (repository) 复制到一个新的目录而已。 Git 不那么做。 Git 允许你拥有多个完全独立的本地分支,创建、合并和删除这些分支仅需要几秒钟的时间。 这意味着你可以这样做: 创建一个新分支尝试新的想法,提交几次,切换回原先的分支,应用一个 patch,然后再切换至刚才实验中的新分支,将其合并。 一个分支用来存放将要发布的版本,另一个测试分支专门合并开发中的工作,其他数个小分支存放日常开发工作。 为每一个开发中的新功能建立相应分支,这样便可以在这些分支中无缝切换,并在某个功能开发完毕合并进主分支后删除相应分支。 创建一个分支来做实验,若发现行不通则直接删掉该分支;放弃这个分支,别人甚至不知道它存在过(即使这期间你已经 push 了其他分支)。 重要的是,当你向一个远程库 push 时,你无需 push 所有分支。你可以只共享一个分支而不是全部。 这会推动大家尝试新想法而不用操心如何、何时合并或与他人共享。 使用其他系统,你也可以找到一些方法来做同样的事,但会困难的多而且极易出错。 Git 让这个过程异常简单,而且当大部分开发者学习 Git 时,他们同时改变了他们的工作方式。 svn perforce 所有内容都在本地 虽然所有分布式 SCM 都有这特点,但根据我的经验 Git 做的更好。除了 ‘fetch’, ‘pull’ 和 ‘push’, 你很少会用到其他需要跟你的硬盘以外的东西打交道的命令。 这不仅使大部分操作比你已经习惯的要快的多,而且让你可以离线工作。 这听起来不怎么样,不过我经常为自己需要离线完成那么多工作感到惊讶。 当你在飞机或火车上还可以建立分支、合并、提交以及浏览项目历史时,你的工作生产力会非常高。 即使是使用 Mercurial,诸如 ‘incoming’ 和 ‘outgoing’ 的常用命令也需要与服务器连接, 而 [...]
权限管理器 Gitosis 把所有用户的公钥保存在 authorized_keys 文件的做法只能暂时奏效。当用户数量到了几百人的时候,它会变成一种痛苦。每一次都必须进入服务器的 shell,而且缺少对连接的限制——文件里的每个人都对所有项目拥有读写权限。 现在,是时候向广泛使用的软件 Gitosis 求救了。Gitosis 简单的说就是一套用来管理 authorized_keys文件和实现简单连接限制的脚本。最有意思的是,该软件用来添加用户和设定权限的界面不是网页,而是一个特殊的 Git 仓库。你只需要设定好某个项目;然后推送,Gitosis 就会随之改变服务器设定,酷吧? Gitosis 的安装算不上傻瓜化,不过也不算太难。用 Linux 服务器架设起来最简单——以下例子中的服务器使用 Ubuntu 8.10 系统。 Gitosis 需要使用部分 Python 工具,所以首先要安装 Python 的 setuptools 包,在 Ubuntu 中名为 python-setuptools: $ apt-get install python-setuptools 接下来,从项目主页克隆和安装 Gitosis: $ git clone git://eagain.net/gitosis.git $ cd gitosis $ sudo python setup.py install 这会安装几个 Gitosis 用的可执行文件。现在,Gitosis 想把它的仓库放在 /home/git,倒也可以。不过我们的仓库已经建立在 /opt/git 了,这时可以创建一个文件连接,而不用从头开始重新配置: $ ln [...]
最近开始在启动Zero项目了,于是就想在CentOs上把整套的代码管理和测试工具都搞起来,也刚好使用git来试试它的代码管理效果,晚上就花了点时间把git在CentOs上安装起来。 首先:到http://git-scm.com/ 当了当前最新的git源码。 解压并进入该目录: tar zxvf git-1.6.5.2 & cd git-1.6.5.2 make prefix=/usr all doc info 这个过程中第一次出现了错误,报的是asciidoc:command not found,google一下知道了asciidoc为何物: AsciiDoc is a text document format for writing short documents, articles, books and UNIX man pages. 详细介绍大家可以看这里 于是到起官网当下了最新的版本 tar -zxvf asciidoc-8.5.1.tar.gz cd asciidoc-8.5.1 ./configure make install 然后重新安装git,这回又遇到了一个问题: xmlto: command not found 无奈再度google得到xmlto is a shell-script tool for [...]

