GitHub Desktop中“Create pull request”置灰,多GitHub Enterprise实例使用咨询
问题解答
创建拉取请求是否必须登录GitHub Desktop?
是的。GitHub Desktop的Create pull request功能需要调用对应GitHub Enterprise实例的API来完成PR创建、分支校验等操作,这必须依赖已登录账户的API访问权限。仅靠SSH密钥只能实现代码的拉取和提交,无法让Desktop获取实例的API权限,所以按钮会处于置灰状态。
同时使用两个独立GitHub Enterprise实例的可行方案
多实例启动(配置文件隔离)
GitHub Desktop支持通过指定不同用户数据目录来启动多个独立实例,每个实例可以登录不同的GHE账户:- 关闭正在运行的GitHub Desktop
- 找到默认配置目录:
- Windows:
%APPDATA%\GitHub Desktop - macOS:
~/Library/Application Support/GitHub Desktop - Linux:
~/.config/GitHub Desktop
- Windows:
- 复制该目录并重命名,比如分别命名为
GitHub Desktop-GHE1和GitHub Desktop-GHE2 - 通过启动参数指定配置目录来打开不同实例:
- Windows:修改快捷方式的“目标”字段,在原有路径后添加
--user-data-dir="%APPDATA%\GitHub Desktop-GHE1",创建两个不同的快捷方式分别对应两个实例 - macOS:在终端执行
open -a "GitHub Desktop" --args --user-data-dir="$HOME/Library/Application Support/GitHub Desktop-GHE1",同理执行另一个目录的命令启动第二个实例 - Linux:执行
github-desktop --user-data-dir="$HOME/.config/GitHub Desktop-GHE1",重复命令切换目录启动第二个实例
这样两个Desktop实例完全独立,可分别登录不同的GHE账户,各自管理对应实例的仓库,PR创建功能也能正常使用。
- Windows:修改快捷方式的“目标”字段,在原有路径后添加
Git命令行+API创建PR
若不想启动多个Desktop窗口,可通过Git命令行配合GHE的API手动创建PR:- 在目标GHE实例中生成带有
repo权限的个人访问令牌(PAT) - 用curl调用实例的API提交PR请求:
curl -X POST \ -H "Authorization: token 你的PAT令牌" \ -H "Accept: application/vnd.github.v3+json" \ https://你的GHE实例域名/api/v3/repos/仓库所有者/仓库名/pulls \ -d '{ "title": "PR标题", "head": "你的分支名称", "base": "目标合并分支名称" }'
PR创建完成后,仍可在Desktop中继续处理代码的拉取、提交等操作。
- 在目标GHE实例中生成带有
单实例账户切换
若两个GHE实例的使用频率不高,可在单个Desktop实例中切换账户:- 退出当前登录的GHE账户
- 登录另一个GHE实例的账户
- 打开对应仓库,此时Desktop会重新关联该仓库与当前登录的账户,
Create pull request按钮即可正常启用。这种方法无需额外配置,但需要频繁切换账户,适合偶尔使用的场景。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

