在我的 GoDaddy 托管计划上设置 git 存储库

2024-03-12

我有一个使用 git 进行版本控制的项目。

我想要做的是在我的(启用 ssh 的)GoDaddy 共享托管包上设置一个存储库,以便我可以通过推送进行部署,而不是在 FTP 中拖放。

任何提示将不胜感激。最好是已经完成此操作的人的帐户,但我个人在网上找不到任何帐户。


经过一些工作,我能够在我的 GoDaddy 帐户上运行 Git。有一篇更长的帖子详细介绍了该过程my blog http://johntrammell.com/wp/2011/01/05/using-git-on-godaddy/,但简短的答案是:

  1. 在您的帐户中安装 git(也许使用我的博客文章中引用的 tarball)
  2. 在您的帐户中创建一个 git 存储库(无论是否裸露)
  3. 检查您的存储库,使用 -u 指示路径git-upload-pack

    % git clone -u libexec/git-core/git-upload-pack mysite:myrepo.git

  4. 调整本地存储库配置以指向正确的路径git-upload-pack and git-receive-pack:

    % git config remote.origin.receivepack libexec/git-core/git-receive-pack
    % git config remote.origin.uploadpack libexec/git-core/git-upload-pack


由于该博客已无法访问,因此以下是从以下位置提取的完整帖子Archive.org http://web.archive.org/web/20110830112931/http://johntrammell.com/wp/2011/01/05/using-git-on-godaddy/:

在 GoDaddy 上使用 Git

该博客托管在一个廉价的 GoDaddy 帐户上。当最近通过 SSH 进行 shell 访问时,我认为安装本地 git 存储库会很有趣。这并不是一件小事,但我终于让它发挥作用了。我是这样做的:

步骤0.配置SSH

您想要创建一个公钥,以便可以轻松地通过 SSH 登录到您的 GoDaddy 帐户。如果您还没有密钥对,请创建一个密钥对,并将其添加到~/.ssh/authorized_keys。我假设有一个条目~/.ssh/config像这样的东西:

Host mysite
HostName mygodaddysite.com
User mylogin

步骤1.安装Git

在查看我的 GoDaddy 主机后,我发现它运行的是 CentOS 5.2。在我的笔记本电脑上运行的二进制文件不兼容,因此我使用 VirtualBox 设置本地 Centos 5.2 安装并构建 Git。我正在分享一个包含以下内容的 tarball预构建的 CentOS 5.2 Git 二进制文件 http://johntrammell.com/centos5.2-git.tar.gz。您应该能够使用以下命令下载并安装:

wget http://johntrammell.com/centos5.2-git.tar.gz
tar xzf centos5.2-git.tar.gz

享受这一部分——我在这里为你节省了几个小时的时间。

步骤 2. 设置您的环境。

将以下内容添加到您的 .bash_profile 中:

export EDITOR=vim
export PATH=$PATH:$HOME/bin:$HOME/libexec/git-core
export LD_LIBRARY_PATH=$HOME/lib
export GIT_EXEC_PATH=~/libexec/git-core
export GIT_TEMPLATE_DIR=~/share/git-core/templates

这将在交互式 shell 上正确设置您的环境。不幸的是,我似乎无法为非交互式 SSH 命令正确设置 PATH。例如,当我从笔记本电脑运行此命令时:

ssh mysite env

我看到默认的路径。我在.bashrc中设置路径时也是这种情况。我还没有追踪到 SSH 在非交互式访问上到底做了什么,但这可能与 sshd 中的 PermitUserEnvironment 设置有关。幸运的是我们可以解决这个问题。

步骤 3. 创建存储库

登录您的 GoDaddy 帐户,然后创建一个简单的“裸”Git 存储库:

% mkdir myrepo
% cd myrepo
% touch README
% git init
% git add README
% git commit -m 'empty git repository'
% cd ..
% git clone --bare myrepo myrepo.git

您现在有一个裸存储库~/myrepo.git/在您的 GoDaddy 帐户的根目录中。

步骤 4. 检查您的存储库

唯一棘手的部分是你必须告诉 git 在哪里可以找到 git-upload-pack。这可以解决上面提到的 PATH 问题。在您的本地计算机上,执行以下操作:

git clone -u libexec/git-core/git-upload-pack mysite:myrepo.git

您现在应该签出了原始最小存储库的副本。

第 5 步:更多 git 配置调整

遗憾的是我们还没有完成:

% cd myrepo
% echo "foo" > README
% git commit -am 'updated'
[master 044c086] updated
 1 files changed, 1 insertions(+), 0 deletions(-)
% git push
bash: git-receive-pack: command not found
fatal: The remote end hung up unexpectedly

我们的 PATH 问题现在正在干扰推送操作。作为解决方法,我们可以在命令行上指定 –receive-pack,或者在本地配置中设置它(这同样适用于获取操作和 –upload-pack):

% git config remote.origin.receivepack libexec/git-core/git-receive-pack
% git config remote.origin.uploadpack libexec/git-core/git-upload-pack

恭喜,您现在应该可以启动并运行了!

资源

  • http://johntrammell.com/centos5.2-git.tar.gz http://johntrammell.com/centos5.2-git.tar.gz
  • https://serverfault.com/questions/26836/setting-up-a-git-repo-on-my-godaddy-hosting-plan https://serverfault.com/questions/26836/setting-up-a-git-repo-on-my-godaddy-hosting-plan
  • 在我的 GoDaddy 托管计划上设置 git 存储库 https://stackoverflow.com/questions/1003885/setting-up-a-git-repo-on-my-godaddy-hosting-plan
  • git-upload-pack:找不到命令,如何正确修复此问题 https://stackoverflow.com/questions/225291/git-upload-pack-command-not-found-how-to-fix-this-correctly
  • http://www.bluehostforum.com/showthread.php?20304-Bluehost-Solution-to-the-Git-PATH-issue-when-using-a-non-interactive-shell http://www.bluehostforum.com/showthread.php?20304-Bluehost-Solution-to-the-Git-PATH-issue-when-using-a-non-interactive-shell
  • http://www.google.com/search?q=ssh+setup http://www.google.com/search?q=ssh+setup
  • http://www.kernel.org/pub/software/scm/git/docs/git-upload-pack.html http://www.kernel.org/pub/software/scm/git/docs/git-upload-pack.html
  • http://www.kernel.org/pub/software/scm/git/docs/git-receive-pack.html http://www.kernel.org/pub/software/scm/git/docs/git-receive-pack.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在我的 GoDaddy 托管计划上设置 git 存储库 的相关文章

随机推荐

  • Android 开发人员:TimerTask 和手机睡眠可能有些奇怪?

    我已经编写了我的第二个 Android 应用程序 该应用程序根据特定的时间表 仅截至目前的日期和时间 切换音频配置文件 如果我通过 eclipse 使用模拟器运行代码 代码可以正常工作 但是我最近导出了 apk 并将其安装在我的 At t
  • 无法加速像素修改的 BufferedImages

    很长一段时间 1 2个月 我一直在试图找到这个特定问题的答案 我无法让我的图像硬件加速 我一直在网上搜索 创建了自己的方法 用键盘敲击我的头 仍然感到疼痛 但没有成功 尽管我讨厌 Java SDK 以外的库 但我尝试了 LWJGL 和 JO
  • Pandas 通过 groupby 分组到列表列表

    给定一个结构如下的数据框 rule id ordering sequence id 1 0 12 1 1 13 1 1 14 2 0 1 2 1 2 2 2 12 我需要将其转换为 rule id sequences 1 12 13 14
  • 如何检测VBA excel是否发现了什么?

    我在宏中使用它来查找工作表中的内容 Selection Find What email After ActiveCell LookIn xlFormulas LookAt xlPart SearchOrder xlByRows Search
  • 使用opencv进行虹膜检测

    如何用opencv检测人脸上的虹膜 看看这个论坛主题 http social msdn microsoft com Forums en winformsdesigner thread 56a938de e065 4e61 b513 4104
  • 在 WPF 中使用 EF Code First 和 SqlCe

    我正在尝试将 EF Code First 与我的 WPF 应用程序一起使用 其想法是在 AppData MyApp 中创建一个 SqlCe Db 如果没有 并将其与 EF Code First 一起使用 目前 当我尝试从它应该创建的数据库中
  • 我如何使用 zend Framework 1.11 中的表单在复选框中设置数据库中的数据

    我有一个表名称是task master 我想在 zend 中动态地将所有记录设置到复选框中 我看到了很多例子 但没有找到任何解决办法 监工 id name br 1 Index br 2 Add br 3 Edit br 4 delete
  • 控制 Linux 嵌入式应用程序的启动屏幕

    在嵌入式编程中 通常需要用一些自定义的 加载 动画或从开机到启动并运行的启动屏幕来替换默认的 Linux 启动输出 达到这个目的的方法是什么 有没有办法在整个启动序列中使用相同的 进程 如何解决这个问题 我猜我们需要一个自制内核来实现这一点
  • 将 virtualenv 从 3.5.3 降级到 2.7

    我的 virtualenv 当前配置为 python 3 5 0 而我需要使用的包仅支持 2 7 我需要一种在 virtualenv 中将 python 运行时降级到 2 7 的方法 我确实有两个版本可供使用 第一个是在我的 virtual
  • Windows 批处理脚本中的文件/文件夹选择器对话框

    在运行时才知道输入文件位置的情况下 使用 GUI 进行文件选择输入可以减少用户出错的可能性 有没有办法从 Windows 批处理脚本调用文件 文件夹选择器对话框 文件浏览器 2016 3 20更新 由于 PowerShell 是当今所有现代
  • OM\Db::query(string $statement) 的声明必须与 PDO::query 兼容

    我刚刚安装了 PHP 8 却出现此错误 我如何解决它 致命错误 OM Db query string statement 的声明必须与 home www includes 中的 PDO query string query int fetc
  • 使用 INDIRECT 函数的条件格式对于布尔 AND 或 OR 或包含公式的单元格失败

    我有以下函数来检查列是否L包含 完成 一词 我使用INDIRECT能够使用条件格式为整行着色 INDIRECT l ROW completed 这个功能有效 但是 我需要扩展它 我也想使用基于额外单元格的条件格式 所以我尝试了以下方法 AN
  • 使 vba 代码适用于所有盒子

    您好 所以我想做的是使此代码适用于所有复选框的 1 50 我希望代码仅影响单击的框 Private Sub CheckBox1 Click If MsgBox Do you want to lock this box vbYesNo War
  • xamarin UI 测试 - 无法加载我指向的本机 APK 路径

    我想通过使用以下代码引用 APK 的路径来在本机 android APK 上运行 REPL UI 测试 public void BeforeEachTest app ConfigureApp Android ApkFile C app de
  • PHP应用程序无法连接到127.0.0.1的docker mysql容器

    Mysql 位于它自己的 docker compose yml 中 因为我想要一个 mysql 服务器启动并运行 任何其他 php 应用程序都可以连接到 所以我在同一个 docker compose yml 中没有 php 和 mysql
  • 如何在 Laravel 5 中包含外部 CSS 和 JS 文件

    我正在使用 Laravel 5 0 表单和 Html Helper 已从此版本中删除 我不知道如何在头文件中包含外部 css 和 js 文件 目前我正在使用这段代码 我认为正确的方法是这样的 这里我有一个jslaravel 的目录app p
  • 防止表单内的 ASP.NET 文本框提交表单

    这是我正在处理的页面 http mcstevenswholesale com catalog aspx http mcstevenswholesale com catalog aspx 目录下方的文本框允许您跳至目录中的特定页面 但是 如果
  • 通过 C++ 检查 Windows 计算机是否在以太网上

    因此 我尝试为此寻找几个不同的答案 我认为可能有希望的一个是 如何使用 Qt 检查 Windows 上的网络接口类型是以太网还是无线 https stackoverflow com questions 21680108 how to che
  • JMockit javaagent 未初始化 JMockit

    我已经设置了 JMockit 以便与一些也使用 Robolectric 的 JUnit 测试一起使用 但我遇到了错误 我主要使用 Maven 来运行测试 当我运行测试时mvn test以及按指定配置的 javaagenthere http
  • 在我的 GoDaddy 托管计划上设置 git 存储库

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我有一个使用 git 进行版本控制的项目 我想要做的是在我的 启用 ssh 的 GoDaddy