【问题标题】:git: how can I programmatically tell if a repo can be pushed?git:我如何以编程方式判断是否可以推送回购?
【发布时间】:2015-10-18 10:24:03
【问题描述】:
我从一个我拥有写入权限的克隆存储库中看到了这个输出:
$~/g/cad --> git push
Everything up-to-date
这个输出是我不知道的:
$~/g/opentx --> git push
Username for 'https://github.com':
如何以编程方式告知特定存储库具有写入权限?
【问题讨论】:
标签:
git
version-control
permissions
【解决方案1】:
判断您是否对远程存储库具有写入权限的唯一方法是尝试通过推送提交或标记或其他东西来尝试在那里写入内容。
我猜你尝试推送标签,然后删除标签:
git tag a-test-tag
git push origin a-test-tag
git push --delete origin a-test-tag
如果push 成功,您可能拥有远程存储库的写入权限(我说“可能”是因为您可能只能更新标签但不能推送提交,或者您只能能够将提交推送到特定的分支等)。
如果需要身份验证,您可以通过将 GIT_ASKPASS 环境变量设置为 true 来导致 git 失败,而不是提示输入凭据:
GIT_ASKPASS=true git push origin a-test-tag