1

我刚刚为一个单独的项目安装了 git —— 现在我不知道在没有版本控制的情况下我是如何生活的这么久。我想看看 GUI 是否会有所帮助,但我有一个问题......

  • 我的开发机器正在运行 windows
  • 该项目位于局域网上的无头 linux 服务器上
  • 项目目录通过 samba 共享并映射为 windows pc 上的网络驱动器
  • 我是唯一使用此服务器的人,因此无需将 repo 克隆到 windows pc
  • 如果我通过 SSH 使用 git,这根本不是问题

不过,到目前为止,我尝试过的 GUI git 客户端都假设我在安装它们的机器上运行 git。如果我尝试使用安装了 widnows 的 git 在 linux 托管的 repo 上进行操作,它(不出所料)会像糖蜜一样慢,并且似乎存在兼容性问题。

有什么办法可以让 smartgit 这个工作?还是其他体面的客户?

我确实安装了 gitweb,它看起来很不错,可以查看项目历史,但我实际上无法用它“做”任何事情。

编辑:如果我可以扩大这个问题,并就如何继续征求意见,即:吸干它并将 Putty 与其他东西一起用于可视化,克隆 repo 并推/拉,或者做一些不同的事情,比如 svick 的X 服务器建议。

4

4 回答 4

7

好的,为了清晰而不是虚荣,我将自己的答案标记为正确,希望能帮助陷入类似困境的人。我希望没有人会被冒犯。

附带说明一下,在提出一个可行的解决方案之后,我最终还是使用了 SSH 和一个驱动器映射的共享 linux 目录进行开发,但是在 Windows 机器上放置一个本地位置来放置一个工作存储库是很有用的。无论如何,GIT 对我来说就像窗户上的糖蜜一样慢,所以我会尽可能少地使用它——但这只是我。

如果你的 bash-foo 像我的一样弱,webmin 可以在下面提供帮助。所以这就是我最终做的事情:

概括:

  • 基于 Web 的项目(在我的例子中是 LAMP 堆栈)
  • 独立开发者
  • 1 台用于开发的 Windows 电脑
  • 1 个用于托管堆栈和项目的无头 linux 服务器

目的:

  • 在 Windows PC 上本地设置工作存储库,以启用 git GUI 客户端等的有效使用,而无需创建整个工作堆栈或提交并推送以查看到底发生了什么。Windows 上的 PHP 很糟糕(是的,是的,比通常的 har har 更糟糕),还有很多其他的事情。

解决方案优势:

  • 无需在 Windows 机器上复制 LAMP 堆栈,或使用数据库来拥有一个工作的本地 repo
  • 无需提交或推送即可实时预览您的更改

解决方案缺点:

  • 本地(Windows)repo 仅在计算机在网络上时才起作用
  • 由于这里发生的事情的循环性质,您可能会看到一些网络延迟

先决条件:

  • Windows 和 linux 机器的静态或基于 MAC 的 IP
  • linux 机器上的 git、BIND、Samba、Apache(或类似)
  • Windows 框上的 SSH 客户端(Putty?)、msysgit、选择的 git GUI(gitextensions/smartgit/gitgui)

该怎么办:

  1. 在 windows 框上为 repo 设置一个共享目录
  2. 在 linux 机器上挂载这个目录
  3. 将 BIND 指向您的两个域的 linux 机器自己的 IP(例如:myproject.lin 和 myproject.win)——(为伪造的 tlds 道歉,但请在此处自行决定)
  4. 使 linux 盒子成为 windows 盒子或网络路由器的 dns 解析器
  5. 在 Apache 中设置两个基于域的服务器(上述服务器)并将它们定向到适当的位置(例如:'/mnt/windows-pc/myproject' 和 '/var/www/myproject')
  6. 确保您的应用程序配置可以映射相对路径,原因很明显
  7. Samba 共享 linux repo 并可能将其映射为 windows 网络驱动器以方便使用
  8. 将你的 linux box 的 repo 克隆到 windows 目录
  9. 根据需要将更改推送回 linux 共享项目目录

为了进一步复杂化这里可能几乎不需要任何解释的是一个(简化的)图表: 我认为与裤子有关

于 2011-07-03T05:20:31.837 回答
3

我是唯一使用此服务器的人,因此无需将 repo 克隆到 windows pc

实际上,似乎有些需要。如果您希望存储库与本地存储库一样快,最简单的选择是实际创建一个本地存储库。

另一种选择是在 Windows 机器上安装 X 服务器并使用 X 隧道通过 SSH 在 Linux 服务器上运行 git GUI,但在 Windows 上显示它。

于 2011-07-02T01:54:44.753 回答
1

DVCS 的美妙之处在于您可以在本地机器上获得完整的本地副本。在 git 的情况下,几乎假设您将要克隆或(至少)在本地存储存储库。

现在,您已经说过克隆它并不理想,但事实是,为了使 GUI 有效,它需要在本地存储库的位置运行。

根据您的工作流程/设置,这可能可行,也可能不可行。这是我的建议:

  1. 在您的本地工作站上设置 XAMPP,即使它需要大量时间投入。
  2. 引入存储库并将您的 Linux 站添加为远程,或者(理想情况下)设置类似gitolite的东西
  3. 在当地发展。将其视为“阿尔法”阶段。您可以在这里获得额外的好处 - 您基本上可以搞砸整个应用程序并且它不会上线。还有你的图形用户界面!
  4. git push部署到远程仓库和 ta-da。

现在,如果你有资源,有一些更好的方法可以真正进入这个领域,我已经在其他帖子中详细介绍了它们。同样,如果您可以灵活地做这样的事情,我强烈推荐它。如果这太激进了,你可能不得不坚持你正在做的事情。希望这可以帮助。

PS:我也是一个独立开发者,我在我的版本控制设置上投入了很多时间。它得到了回报!

于 2011-07-02T03:47:47.020 回答
0

我有一个类似的配置,我在目标 Linux 机器上运行一个克隆。但是,我也使用 Windows 的 ssh 在无头 Linux 机器上进行开发。我在 Win7/64 上运行 Xming。所以对于这个活动,Windows 盒子几乎只是一个 X 终端。

我已经在 Linux 机器上安装了 gnome-terminal,因为我对在 Windows 命令窗口中运行的 putty 或 xmingw bash 都不满意。

它并不完美,但事实证明它是可行的。

于 2011-07-02T04:08:23.363 回答