Git+中文教程(18)
时间:2026-01-20
时间:2026-01-20
Git+中文教程
Git 中文教程
从你的本地的(私有的)版本库中发布改动到你的远程的(公共的)版本库中需要远程机器上的写权限。你需要一个SSH的帐号来运行一个简单的命令,git-receive-pack。首先,你需要在远程机器上创建一个空的版本库来存放你的公共版本库。这个空版本库以后将通过pushing来保持更新。显然,这个版本库之需要在开始的时候创建一次。
Notegit push使用一对命令,git-send-pack在本地机上运行,git-receive-pack在远程机上运行。这
两个命令通过SSH连接来进行通讯。
你本地的版本库的git目录通常是.git,但是你的公共版本库通常还要加上你的项目名,即.git。让我们来为my-git创建这样一个版本库。首先,登入远程的机器,创建一个空目录(如果你选择HTTP作为发布方法,这个空目录需要建在web server的根目录下面):
$ mkdir my-git.git
然后运行git init-db命令将这个目录加入git版本库中,这里,因为这个版本库的名字不是通常的.git,我们需要稍微改动一下命令:
$ GIT_DIR=my-git.git git-init-db
有很多种传输方式可以发布公共版本库。这里,要确认这个目录可以通过你选择的传输方式来被其他人访问。你也需要确认你有git-receive-pack这个程序在$PATH这个路径下。
Note当你直接运行程序的时候,很多sshd的安装版并没有将你的shell作为登陆的shell;这就是
说,如果你登陆的shell是bash 的话,被读到的是.bashrc而不是.bash_profile。确认.bashrc设
置好了$PATH路径,这样你才可以运行git-receive-pack命令。
Note如果你打算通过HTTP来发布这个版本库,这是你就应该运行命令chmod +x my-git.git/
hooks/post-update。这确认了每次你导入数据到这个版本库中,git-update-server-info能够
被执行。
现在你的“公共的版本库”可以接受你的任何改动了。回到你的本地机上,运行命令:
$ git push :/path/to/my-git.git master
该命令将你的公共版本库和你当前的版本库中指定名称的分支头部同步(这里是master)。举一个实际的例子,你可以这样来更新公共的git版本库。的镜像网络也这样来同步其他公共的可访问的机器: