李晓飞 發表於 2012-12-6 12:37:21

在FreeBSD 8.1下搭建Git服务器步骤

<p>Git是一个由林纳斯&bull;托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。</p>
<p><span style="FONT-SIZE: larger"><strong>1、在FreeBSD8.1下安装Git服务器</strong></span></p>
<p><strong>(1)用ports安装Git</strong></p>
<pre>cd /usr/ports/devel/gitmake install clean</pre>
<p><strong>(2)修改/etc/rc.conf,让git随开机启动</strong></p>
<pre>git_daemon_enable=&rdquo;YES&rdquo;</pre>
<p><strong>(3)新增使用者git</strong></p>
<pre>pw useradd git</pre>
<p><strong>(4)启用git daemon</strong></p>
<pre>/usr/local/etc/rc.d/git_daemon start</pre>
<p><strong>(5)用sockstat 来验证git是否启动</strong></p>
<pre>sockstt -4l | grep 9418root git-daemon 37064 3 tcp4 192.168.21.248:9418 *:*</pre>
<p><span style="FONT-SIZE: larger"><strong>2、如何导入一个新的Git项目</strong></span></p>
<p><strong>(1)首先把自己介绍给git系统,比如自己的姓名和email地址,命令如下:</strong></p>
<pre>git config--global user.name &quot;Andrew.yu&quot;git config--global user.email &quot; yuhongchun027@163.com&quot;</pre>
<p><strong>(2)提交我的目录/home/andrewyu/test进Git项目库</strong></p>
<pre>cd /home/andrewy/test/git initgit add .git commit</pre>
<p><strong>(3)这时候 大家可观察我们的/home/andrewy/test的目录</strong></p>
<pre># ls -lsarttotal 82 -rw-r--r-- 1 root wheel 18 Apr 7 07:42 30 -rw-r--r-- 1 root wheel 0 Apr 7 07:42 20 -rw-r--r-- 1 root wheel 0 Apr 7 07:42 12 drwxr-xr-x 8 root wheel 512 Apr 7 07:42 .git2 drwxr-xr-x 3 root wheel 512 Apr 7 07:43 .2 drwxr-xr-x 4 root wheel 512 Apr 7 07:43 ..</pre>
<p>Git init命令可用于初始化当前所在目录的这个项目,shell返回的提示表明已经建立了一个.git隐藏目录来保存这个项目前的进展信息。</p>
<p><span style="FONT-SIZE: larger"><strong>3、Git命令行操作</strong></span></p>
<p>查看源代码和快照的区别</p>
<pre>git diff</pre>
<p>查看快照和仓库的区别</p>
<pre>git diff --cached</pre>
<p>查看整体改动的信息</p>
<pre>git status</pre>
<p>告诉git我修改了hello.py文件,请检查下(GIT中无论修改还是增加新文件均使用add进行登记)</p>
<pre>git add hello.py</pre>
<p>提交到git</p>
<pre>git commit</pre>
<p>查看日志</p>
<pre>git log</pre>
<p>只回退commit的信息,但index file(就是临时存储区域)和修改的代码仍然在</p>
<pre>git reset --soft HEAD</pre>
<p>不仅回退commit的信息,代码也恢复到修改前的版本</p>
<pre>git reset --hard HEAD</pre>
<p>回退commit和index file的信息,保留代码的修改</p>
<pre>git reset --mixed HEAD</pre>
<p>默认情况等同于mixed</p>
<pre>git reset HEAD</pre>
<p>从index file中删除一个已经登记的文件</p>
<pre>git reset -- a.py</pre>
<p>创建branch-a分支</p>
<pre>git branch branch-a</pre>
<p>切换到branch-a分支</p>
<pre>git checkout branch-a</pre>
<p>将分支合并到主干(如果有冲突会提示冲突的地方,修改后再合并)</p>
<pre>git merge branch-a</pre>
<p>分支内容合并到主干后删除branch-a分支</p>
<pre>git branch -d branch-a</pre>
<p>不论分支内容是否合并到主干,均删除branch-a分支</p>
<pre>git branch -D branch-a</pre>
<p>克隆hello-git到hello-git2中</p>
<pre>git clone /home/flynewton/hello-git hello-git2cd hello-git2</pre>
<p>==========================================================</p>
<p>(1)修改hello-git2中的源代码并提交</p>
<p>(2)创建分支branch-b,并修改分支中的源码并提交</p>
<p>(3)进入hello-git文件夹中</p>
<p>==========================================================</p>
<p>将hello-git2主干代码作为本地的新分支hello2-works</p>
<pre>git fetch /home/flynewton/hello-git2 master:hello2-works</pre>
<p>查看本地主干和hello2-works分支的差异</p>
<pre>git -p master..hello2-works</pre>
<p>合并hello-git2的主干到本地</p>
<pre>git pull /home/flynewton/hello-git2 master</pre>
<p>合并hello-git2的分支到主干</p>
<pre>git pull /home/flynewton/hello-git2 branch-b</pre>
<p>在公司的开发环境中,主要是用SVN来用作版本管理,Git目前处于测试阶段,感觉它用来添加项目的子目录不是特别理想,另外,分支合并时产生的Merge问题也让人很烦燥,相反,SVN在这些方面都做得很好;我建议大家目前以SVN为主,Git为辅来进行我们的代码管理工作。</p>
頁: [1]
查看完整版本: 在FreeBSD 8.1下搭建Git服务器步骤