是否可以将我的代码从我的服务器推送到Github?

时间:2011-01-08 13:29:37

标签: git github push

几个月前我使用 Github ,但只在我的电脑之间使用 Github 。我现在想要做的是将代码从我的服务器推送到 Github 。原因是因为我现在的工作方式不同。我目前将代码直接保存到我的托管服务提供商提供的服务器

是否可以将我的代码从我的服务器推送到Github?

另外我应该提一下,我目前只有FTP访问我的服务器并使用 FileZilla 进行连接。

更新

我去了 #git IRC 频道,并从那里的一些人那里发现,不可能使用git而不能从一个服务器上SSH。我已联系我的主机,看看我是否可以从服务器SSH并在那里安装git?

5 个答案:

答案 0 :(得分:4)

有多种方法可以做到这一点。

  1. 如果您可以使用命令shell(或远程桌面或其他任何东西)访问您的服务器,您只需在那里初始化一个git存储库。
  2. 如果你有ftp访问权限,你可以将你的ftp映射为具有类似NetDrive(this article explains that)之类的驱动器,然后使用你通常使用的相同方法,但使用映射驱动器
  3. 另一方面,我会说更好的选择是采用不同的方式:在本地工作,并编写一个脚本,在您提交内容时更新您的Web代码。这会是一种选择吗?

答案 1 :(得分:3)

如果您有权访问主机提供商服务器,我建议设置一个后接收挂钩。

我认为您的服务器有权推送到您的github存储库,否则请先关注official GitHub documentation

在您的服务器上,创建<path-to-repo>/hooks/post-receive,其中包含:

#!/bin/sh
echo "Pushing $3 $1 to github."
git push github $3

授予其执行权限:

chmod +x <path-to-repo>/hooks/post-receive

github添加为远程存储库:

cd <path-to-repo>
git add remote github git@github.com:<username>/<repo-name>.git

然后,每次推送到服务器都会将其推送到配置的github存储库。

答案 2 :(得分:2)

在GitHub中,上传服务器“public”ssh密钥(在帐户选项下)。

在您的服务器中,您可以克隆您的GitHub仓库,只需将您的服务器数据复制到该仓库,然后推送?这样,GitHub现在更新了您的服务器副本。现在您可以在您的服务器或个人计算机上进行开发,因为它们都是从GitHub克隆的存储库。

如果您正在进行生产(直接投入使用),我建议您使用某种脚本来发布结果,而不是直接在实时服务器上进行开发。

我的工作流程如下:

  1. 克隆GitHub项目到我家。
  2. 在GitHub上创建两个分支,master分支和生产分支。
  3. 创建一个Git Hook,当把东西推送到生产分支时,它会自动将内容部署到服务器。
  4. 我在master分支上继续开发,当它是发布时间时,我只是将它合并到生产分支。

答案 3 :(得分:1)

我不明白为什么不。你必须编写一个应用程序来与git命令行进行交互......但你应该能够将代码从任何地方推送到github。

答案 4 :(得分:1)

不确定

您需要以某种方式提供SSH密钥。您可以将其复制到服务器,或启用代理转发---例如做“ssh -A ......”。在这里阅读后者 - http://unixwiz.net/techtips/ssh-agent-forwarding.html