在FreeBSD 8.1下搭建Git服务器
创始人
2024-07-25 14:41:05
0

 Git是一个由林纳斯•托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

1、在FreeBSD8.1下安装Git服务器

(1)用ports安装Git

cd /usr/ports/devel/git
make install clean

(2)修改/etc/rc.conf,让git随开机启动

git_daemon_enable=”YES”

(3)新增使用者git

pw useradd git

(4)启用git daemon

/usr/local/etc/rc.d/git_daemon start

(5)用sockstat 来验证git是否启动

sockstt -4l | grep 9418
root git-daemon 37064 3 tcp4 192.168.21.248:9418 *:*

#p#

2、如何导入一个新的Git项目

(1)首先把自己介绍给git系统,比如自己的姓名和email地址,命令如下:

git config--global user.name "Andrew.yu"
git config--global user.email " yuhongchun027@163.com"

(2)提交我的目录/home/andrewyu/test进Git项目库

cd /home/andrewy/test/
git init
git add .
git commit

(3)这时候 大家可观察我们的/home/andrewy/test的目录

[root@research_jail ~/project]# ls -lsart
total 8
2 -rw-r--r-- 1 root wheel 18 Apr 7 07:42 3
0 -rw-r--r-- 1 root wheel 0 Apr 7 07:42 2
0 -rw-r--r-- 1 root wheel 0 Apr 7 07:42 1
2 drwxr-xr-x 8 root wheel 512 Apr 7 07:42 .git
2 drwxr-xr-x 3 root wheel 512 Apr 7 07:43 .
2 drwxr-xr-x 4 root wheel 512 Apr 7 07:43 ..

Git init命令可用于初始化当前所在目录的这个项目,shell返回的提示表明已经建立了一个.git隐藏目录来保存这个项目前的进展信息。

#p#

3、Git命令行操作

查看源代码和快照的区别

git diff

查看快照和仓库的区别

git diff --cached

查看整体改动的信息

git status

告诉git我修改了hello.py文件,请检查下(GIT中无论修改还是增加新文件均使用add进行登记)

git add hello.py

提交到git

git commit

查看日志

git log

只回退commit的信息,但index file(就是临时存储区域)和修改的代码仍然在

git reset --soft HEAD

不仅回退commit的信息,代码也恢复到修改前的版本

git reset --hard HEAD

回退commit和index file的信息,保留代码的修改

git reset --mixed HEAD

默认情况等同于mixed

git reset HEAD

从index file中删除一个已经登记的文件

git reset -- a.py

创建branch-a分支

git branch branch-a

切换到branch-a分支

git checkout branch-a

将分支合并到主干(如果有冲突会提示冲突的地方,修改后再合并)

git merge branch-a

分支内容合并到主干后删除branch-a分支

git branch -d branch-a

不论分支内容是否合并到主干,均删除branch-a分支

git branch -D branch-a

克隆hello-git到hello-git2中

git clone /home/flynewton/hello-git hello-git2
cd hello-git2

==========================================================

(1)修改hello-git2中的源代码并提交

(2)创建分支branch-b,并修改分支中的源码并提交

(3)进入hello-git文件夹中

==========================================================

将hello-git2主干代码作为本地的新分支hello2-works

git fetch /home/flynewton/hello-git2 master:hello2-works

查看本地主干和hello2-works分支的差异

git -p master..hello2-works

合并hello-git2的主干到本地

git pull /home/flynewton/hello-git2 master

合并hello-git2的分支到主干

git pull /home/flynewton/hello-git2 branch-b

在公司的开发环境中,主要是用SVN来用作版本管理,Git目前处于测试阶段,感觉它用来添加项目的子目录不是特别理想,另外,分支合并时产生的Merge问题也让人很烦燥,相反,SVN在这些方面都做得很好;我建议大家目前以SVN为主,Git为辅来进行我们的代码管理工作。

【51CTO.com独家特稿,非经授权谢绝转载!合作媒体转载请注明原文出处及出处!】

【编辑推荐】

  1. 版本控制系统对比:Git与Subversion
  2. 教程:在CentOS 5上安装Git
  3. Git历险记(5):Git里的分支与合并

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...