【发布时间】:2022-01-18 14:53:00
【问题描述】:
我正在尝试使用 sh 文件提交我的更改,输入我的 git 凭据,并将更改推送到我正在处理的分支。我无法让凭据部分工作
#!/bin/sh
cd pathtomyrepo
git add *.py
git commit -m "made changes"
git push origin mybranch
mygitusername
echo Press Enter...
mygitpassword
echo Press Enter...
注意:我必须事先运行 chmod +x pathtomyshscript.sh 才能运行 sh 文件。
我得到的错误是:
错误:将对象添加到存储库数据库 .git/objects 的权限不足 致命:无法写入提交对象
我认为这意味着我的凭据没有传递给 git。 关于如何做的任何建议?有可能吗?
【问题讨论】:
-
我在这里看到了 2 个主要错误。第一,错误不是来自推送,而是来自较早的本地命令。要找出哪个在运行
sh -x ./pathtomyshscript.sh— shell 会在执行之前回显每个命令。 -
第二,你不能从你的 shell 传递这样的凭据。当
git push要求提供凭据时,它会卡住,shell 脚本不会继续,您的echo命令也不会运行。有许多不同的方式可以正确传递凭据——凭据管理器、HTTPS URL 中的登录名/密码、SSH URL 中的 SSH 密钥对。 -
感谢您的反馈,我修改了代码以解决第一个问题,并将研究您提出的解决方案。
标签: git github commit credentials