如何为 gitlab 集成 sourcetree

Posted

技术标签:

【中文标题】如何为 gitlab 集成 sourcetree【英文标题】:How to integrate sourcetree for gitlab 【发布时间】:2015-02-18 15:28:15 【问题描述】:

我在 github 上工作并将其集成到我的一个项目的 sourcetree(MAC 版本)中。我想为 GITLAB 使用 sourcetree。但我无法将 gitlab 的远程添加到源代码树。在存储库设置中,只有我可以看到主机类型为“未知”、“bitbucket”、“github”和“stash”。我用了 unknown 但它对我没有帮助。

Sourcetree 版本 2.0.4 (2.0.4)

【问题讨论】:

如果以下答案没有帮助,也许您可​​以分享您在尝试提交时收到的错误消息。 我找到了这篇文章jaredleonmorgan.net/2016/03/16/… 【参考方案1】:

这些是可选设置。将其设置为未知,您应该会很好。

编辑:如果“未知”不再是一个选项,请尝试将该部分中的所有内容留空。

【讨论】:

从 SourceTree 2.0.5 开始,“未知”不再是一个选项。【参考方案2】:

似乎没有办法在 SourceTree 中设置 GitLab 帐户,但是如果您只是克隆一个远程仓库,它将正确使用您的 SSH 密钥。

编辑:在 SourceTree 3.0 之后,可以添加各种非 Atlassian git 帐户,包括 GitLab。

【讨论】:

jaredleonmorgan.net/2016/03/16/…我注意到那篇文章 我无法让它与 SSH 密钥一起使用。总是要求输入密码。 当我在 SourceTree 中将其设置为帐户时,尝试从显示的存储库克隆时出现错误:abort: repository not found【参考方案3】:

它对我有用,但只能使用 ssh 密钥而不是用户名和密码。

将 ssh 密钥添加到 sourcetree 后,我更改了 Tools -> Options -> SSH-Client to work with PuTTY/Plink. 下的设置

我在添加 ssh 密钥后遇到了麻烦,因为我忘记重新启动 sourceTree。 “这是必要的,以便有一个 ssh-agent 实例正在运行,SourceTree 可以在加载您的密钥时与之对话。” 看这里: https://answers.atlassian.com/questions/189412/sourcetree-with-gitlab-ssh-not-working

【讨论】:

【参考方案4】:

它对我有用,但仅在存储库设置中使用 https 链接(存储库 => 存储库设置)。您需要将设置更改为:

网址/路径:https://**********.com/username/project.git 主机类型 - 存储 主机根 URL - GitLab 的根 URL(例如:https://**********.com/) 用户名 - 留空

或者在某些情况下,如果您有 ssh url,例如:

git@gitlab.com:USER/REPOSITORY.git

您的电子邮件如下:

test@google.com

那么这个设置应该可以工作:

URL / path: https://test%40google.com@gitlab.com:USER/REPOSITORY.git

【讨论】:

【参考方案5】:

如果您有从 GitLab 为您的项目生成的 SSH 密钥,您可以通过终端将其添加到 OS X 中的钥匙串。

ssh-add -K

执行后,系统会要求您输入在创建 SSH 密钥时输入的密码。

一旦 SSH 密钥在钥匙串中,您就可以将 GitLab 中的 URL 粘贴到 Sourcetree 中,就像通常克隆项目一样。

【讨论】:

对我来说这很好用。克隆 repo 存在问题,但在向钥匙串添加密钥后能够访问 repo 和所有分支。谢谢!使用命令 'ssh-add -K your_private_key' 获取密码。【参考方案6】:

这对我有用,

第1步:点击+ New Repository>从网址克隆

第 2 步:Source URL 中提供 URL,后跟您的用户名,

例子:

GitLab 回购网址:http://git.zaid-labs.info/zaid/iosapp.git GitLab 用户名:zaid.pathan

所以最终到达网址应该是http://zaid.pathan@git.zaid-labs.info/zaid/iosapp.git

注意:zaid.pathan@ 添加在 git 之前。

第 3 步:享受克隆 :)。

【讨论】:

【参考方案7】:

使用 GitLab 中的 SSH URL

第 1 步:GitLab 生成具有 默认值SSH 密钥

GitLab 提供了生成它的命令。只需复制它们,编辑电子邮件,然后将其粘贴到终端。使用默认值很重要。否则 SourceTree 将无法在没有额外配置的情况下访问 SSH 密钥

第 2 步: 使用命令 ssh-add -KSSH 密钥 添加到您的 keychain

打开终端并粘贴上面的命令。这会将密钥添加到您的钥匙串中。

第 3 步: 重新启动 SourceTree 并使用 URL 克隆远程仓库。

需要重新启动 SourceTree,以便 SourceTree 选择新密钥。

第 4 步: 复制 GitLab 提供的 SSH URL。

第 5 步: 将 SSH URL 粘贴到 SourceTreeSource URL 字段中。

这些步骤已在 Mac OS 10.13.2 上使用 SourceTree 2.7.1 成功执行。

【讨论】:

【参考方案8】:

Sourcetree 3.x 有一个接受 gitLab 的选项。见here。我现在使用 Sourcetree 3.0.15。在设置中,放置你的远程gitLab主机和url等。如果你现有的git客户端版本不再支持,最简单的方法可能是通过Tools->Options->Git使用Sourcetree嵌入式Git,在底部附近的Git版本中,选择嵌入式。可能会发生下载。

【讨论】:

这确实有效。一个陷阱是,必须在标有“密码”的字段中放置您在 GitLab 上创建的令牌。不是您通常使用的访问 GitLab 的密码。【参考方案9】:

我最终使用了 GitKraken 。 我已在 30 秒内安装、验证并连接到我的仓库。

【讨论】:

以上是关于如何为 gitlab 集成 sourcetree的主要内容,如果未能解决你的问题,请参考以下文章

如何为作业禁用 GitLab 构建缓存

sourcetree gitlab 配置ssh

markdown 如何为两个GitLab帐户设置两个SSH密钥

如何为私有 GKE 集群启用 Gitlab CI/CD?

如何为同一主机的多个 gitlab 帐户使用多个 ssh 密钥[重复]

如何为 Gitlab 运行器启用通过 SSH 克隆?