【问题标题】:Solution for Git GUI client for remote SSH远程SSH的Git GUI客户端解决方案
【发布时间】:2016-01-23 04:31:03
【问题描述】:

我是Git GUI 用户。我在本地开发中使用它没有问题。但是,现在我们有一个带有 Git 存储库的服务器。我可以通过使用 Git GUI 客户端访问它来远程推送、拉取和区分吗?

目前,我正在通过 SSH 连接到 Linux 服务器,并使用 Git 命令来执行所有 Git 命令。但是当涉及到差异时,我发现它非常困难。这就是为什么我认为有什么解决方案适合我使用 Git GUI 客户端访问远程存储库并使用 Git 客户端执行 Git 命令。

我希望能够在 Git 存储库中挂载远程服务器。 目前我们只需要打开本地磁盘中的 Git 存储库。例如,C:\www\repo.git 文件。如果我想访问 10.10.10.10/home/www/.git 并在 Git 客户端中执行所有 Git 命令呢?

解决方案适用于 OS X 和 Windows。

【问题讨论】:

  • 这是超级用户(它真的很广泛,被复制等没问题)。要么被移动,要么被关闭。

标签: linux git ssh


【解决方案1】:

除了VNC / remote X(这是一个显而易见的解决方案,因此不值得给出答案),我能找到的唯一选择是Visual Studio Code 的新远程开发支持。

您可以通过 ssh(从 Visual Studio Code 中)连接到服务器,然后 Visual Studio Code 的 Git 功能就可以本地运行。然而,该界面相当基本 - 特别是没有历史视图,您不能从 GUI 中变基、挑选等。它基本上用于暂存提交。

This extension 为您提供正确的 git 图形视图。挺好的。

【讨论】:

  • 这可能是 2020 年最好的解决方案。我想知道 GitKraken 是否支持开箱即用...
  • 对于 Dreamhost.com,我必须运行这个: setfattr -n user.pax.flags -v "mr" $(find $NVM_DIR -type f -iname "node" -o -iname " npm" -o -iname "npx") 我在以下位置找到:gitmemory.com/issue/microsoft/vscode-remote-release/3201/…
【解决方案2】:

首先,当涉及到差异时,您可以简单地 git 获取您的 repo,并在本地(使用 git gui)进行差异,因为您拥有所有历史记录。

其次,如果您对服务器有 ssh 访问权限,则不需要实际打开 ssh 会话。

一个简单的git command git@gitserver:/path/to/git/project.git 就足够了(用克隆/推/拉/取替换“command”)
这意味着提取很容易。

请参阅Git on the Server - Setting Up the Server 了解 ssh 设置,至少对于 Linux 或 Mac。
对于 Windows,您可以考虑使用其他 ssh 服务器,例如 copssh-free-edition


但是现在我们的团队遇到了这个问题,我是 GIT 的唯一负责人。这就是为什么我寻求帮助如何解决这个问题

然后你需要 ssh 到服务器,在 repo 中 git add 和 git commit,然后回到你的本地工作站,克隆或获取,并在那里做差异。 ——

【讨论】:

  • 我的问题是我们的一些团队不熟悉 GIT。有时他们会去生产服务器(实时服务器)在那里进行修改。这就是为什么,服务器代码是混乱的。我想在服务器上提交之前检查服务器。如果我可以将 GIT 客户端连接到远程服务器,那我的工作将很容易。为了您的说明,我仍然没有真正了解您在远程端的设置方式(例如,我的服务器 IP 是 10.10.10.10
  • @Shiro 不需要设置:只要ssh git@gitserver ls /path/to/git/project.git 有效(意味着您可以访问并列出服务器上的裸仓库的内容),您可以使用 git 命令,如git clone git@gitserver:/path/to/git/project.git
  • 首先,当涉及到差异时,您可以简单地 git 获取您的存储库,并在本地(使用 git gui)进行差异,因为您拥有所有历史记录。如果我没有提交,我如何管理获取我的远程仓库。我的想法是我不想在检查之前简单地提交我的服务器代码。我不明白你的意思
  • @Shiro "我是 SSH 到 linux 服务器,并使用 git 命令执行所有 git 命令。":这意味着您的 repo 在您的服务器上。我的意思是你可以在本地克隆/获取它,并在本地进行差异。
  • 是的。我可以在本地克隆/获取它。但是,我的队友他们在服务器中进行了临时更改,但他们没有提交。我不能获取最新的对吗?我的本地和服务器都在使用 bitbucket git 服务器。
【解决方案3】:

如果您的服务器启用了它,您可以使用XForwarding 在本地计算机上显示在远程计算机上执行的 GUI。

在服务器端,这意味着您需要安装适当的工具(例如,git-gui,这意味着您还需要安装 Tcl/Tk,这意味着您还需要安装 X 基础架构)。

您还必须启用 Xforwarding,确保您的 /etc/ssh/sshd_config 中有如下一行:

X11Forwarding yes

要在本地 Linux 机器上使用它,您通常会使用 -X 标志为给定连接启用 XForwarding

 shiro@local:~$ ssh -X gituser@gitserver

 gituser@gitserver:~$ cd repo.git
 gituser@gitserver:~/repo.git$ git gui

在您的本地 OS X 机器上,您可以改用 -Y

 shiro@applejoice:~$ ssh -Y gituser@gitserver

 gituser@gitserver:~$ cd repo.git
 gituser@gitserver:~/repo.git$ git gui

您需要在本地计算机上运行Xserver,才能使用XForwarding。虽然这在 Linux(或 OS X)上不是问题,但对于 Win32 来说就变得复杂了。网上有tutorials,用于设置和使用Win32下的Xserver(例如Xming)。

【讨论】:

  • 我检查了我的/etc/ssh/sshd_config 有 X11Forwarding 是的。我可以使用 ssh -X gituser@gitserver。我需要在本地 linux 机器上安装 gitserver?
  • 'gitserver' 是你的 git 服务器的名称。既然你可以使用我给出的命令,我看不出有什么问题。
  • 对不起,我的意思是我不能运行 git gui。当我运行git gui git: 'gui' 不是 git 命令。请参阅“git --help”。你的意思是其中之一吗? gc grep init pull push vagrant@homestead:~/Code/project$ git-gui git-gui: command not found
  • 好吧,在我的回答中它说“你需要安装正确的工具(例如 git-gui”),这正是你的问题:你没有安装 git gui;所以安装它。
猜你喜欢
  • 1970-01-01
  • 2012-08-01
  • 2021-04-09
  • 2012-06-17
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多