0

我有一个本地分支 ( master)、一个 GitHub 存储库 ( origin) 和另一个远程存储库 ( server)。我已经设置了我的遥控器,所以我可以在本地输入git push server master并将更改推送到server/master.

当我git log -1在本地和服务器上键入时,它们返回相同的提交,但我在本地所做的任何更改在服务器上都不可见。

我使用 Capistrano 部署了我的应用程序,因此重新部署它会使更改立即可见,但我不想每次进行更改时都必须重新部署。

知道这里发生了什么吗?我对 Git 比较陌生。希望这很容易解决。

4

2 回答 2

0

在我看来,您可能正在查看与您的 Web 服务器所指向的目录不同的目录。

当我设置 capistrano 时:

cap deploy:setup
#then
cap deploy

它创建一个类似于以下的目录结构:

/releases (each deploy gets its own randome number directory)
/current (a sym-link to the latest release)
/shared

这些文件夹都没有绑定到 git。这让我觉得你的网络服务器可能没有指向你在 git 中使用的同一个目录。

--

您可能会发现 cap deploy 更可取,因为如果有任何问题,您将能够看到输出。

我不是一个大专家,但以上是我使用 Capistrano 设置导轨的方式。

于 2012-10-04T06:20:08.207 回答
0

通常origin是用于 GitHub 远程的名称,而不是master. 你可以通过做检查你有什么遥控器git remote show。如果您想要有关远程使用的更多详细信息git remote show origin(或者您的远程调用的任何内容,如果它不是来源)。这会给你一个清单。我怀疑您拥有的实际上是两个本地分支(主分支和服务器)。尝试做一个git push server origin. 这将获取您的服务器分支并将其放在 GitHub 上。

或者

如果您尝试将服务器分支中的更改与您的主分支结合使用checkout master,然后使用git merge server. 这会将您从服务器分支中的更改合并到您的主分支中,然后您可以通过git push master origin.

于 2012-10-04T06:23:42.570 回答