git:我怎样才能以编程方式判断是否可以推送回购?

时间:2015-07-28 02:48:24

标签: git version-control permissions

我看到克隆回购的输出,我有写权限:

$~/g/cad --> git push 
Everything up-to-date

这个输出是我不想要的:

$~/g/opentx --> git push
Username for 'https://github.com': 

如何以编程方式告知特定存储库是否具有写入权限?

1 个答案:

答案 0 :(得分: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