这些Git命令有什么作用?

时间:2009-11-23 16:42:36

标签: git

这些命令究竟在做什么:

ssh serveradmin%mt-example.com@serveradmin@mt-example.com
cd domains/git.mt-example.com/html/mt-example.git
git --bare update-server-info
cd hooks
mv post-update.sample post-update
chmod a+x post-update

我不确定为什么在git --bar命令之后他们有更新-server-info 那个'hooks'文件夹里发生了什么?

更新

取自:http://kb.mediatemple.net/questions/1594/Using+Git

我基本上在终止服务器时创建Git存储库。我还需要进入CD挂钩等吗?

4 个答案:

答案 0 :(得分:2)

设置gitosis或类似的东西。

ssh serveradmin%mt-example.com@serveradmin@mt-example.com

以用户serveradmin%mt-example.com@serveradmin身份登录mt-example.com。

cd domains/git.mt-example.com/html/mt-example.git

将自己置于git存储库中。

git --bare update-server-info

生成运行哑服务器所需的一些文件。 --bare是一个通用的git选项,用于声明您不会在此克隆中进行结帐。

cd hooks
mv post-update.sample post-update
chmod a+x post-update

启用服务器配置中通常使用的更新后挂钩,方法是将其从无效的示例名称重命名为git查找的名称,并使其可执行。

答案 1 :(得分:1)

该命令序列安装更新后的挂钩。默认情况下,git会放置一个post-update.sample文件,但会在其上添加.sample扩展名,因为不是每个人都希望以这种方式运行它。在git识别之前,您必须将其重命名为post-updatechmod行为更新后挂钩添加执行权限,这是运行它所必需的。默认的更新后挂钩只在存储库上运行git update-server-info。由于他们还希望您手动运行该命令,我的猜测是整个序列旨在补偿他们假设您提交到存储库的方式;这就是git update-server-info的作用 - 它修复了应该创建/更新的缺失和过时的引用和包,但不是因为使用了异常的更新机制。

一般来说,如果有人建议这样做,我会调查并确保它真的有必要;标准的git安装和正常使用不需要这一步。

修改

是的,这是必要的。他们让你通过http提交提交并通过ssh推送它们。这些协议都不能支持git需要完成的额外内容,因此需要git update-server-info来解决此问题。

另外......我不能说我推荐Grid Server。它实际得到的价格非常昂贵。

答案 2 :(得分:0)

git update-server-infoown man page。同样,githooks有一个man page--bare不是命令,而是一个似乎不存在的命令修饰符。如果您告诉我们您从哪里获得这些说明可能会有所帮助。

答案 3 :(得分:0)

hooks目录包含挂钩。挂钩是在发生特定事件时运行的脚本。例如,推送到存储库,提交等等。