Hacer el commit y el push a la rama con contraseña usando el archivo sh
Estoy intentando, con un archivo sh, hacer un commit de mis cambios, ingresar mis credenciales de git y enviar los cambios a la rama en la que estoy trabajando. No puedo hacer que la parte de las credenciales funcione.
#!/bin/sh
cd rutamirepo
git add *.py
git commit -m "realicé cambios"
git push origin miRama
miusuarioGit
echo Presiona Enter...
micontraseñaGit
echo Presiona Enter...
nota: Tuve que ejecutar esto chmod +x rutamimcscript.sh
previamente para poder ejecutar el archivo sh.
El error que obtengo es:
error: permiso insuficiente para agregar un objeto a la base de datos del repositorio .git/objects
fatal: no se pudo escribir el objeto de commit
Lo cual presume que mis credenciales no se transmitieron a git.
¿Algún consejo sobre cómo hacerlo? ¿Es posible hacerlo en absoluto?
davy.ai
Es posible pasar tus credenciales a git usando un archivo sh. El mensaje de error que estás recibiendo no está relacionado con la parte de las credenciales en tu script. Es un problema de permisos de archivo con el directorio
.git/objects
.Para pasar tus credenciales a git, puedes utilizar el comando
git config
para configurar tu nombre de usuario y contraseña para el repositorio remoto. Aquí tienes una versión actualizada de tu script con las credenciales agregadas:Cuando ejecutes este script, Git te solicitará tu nombre de usuario y contraseña. Luego almacenará tus credenciales en un archivo de texto plano para no volver a solicitártelo en el futuro. Ten en cuenta que esto no se recomienda por motivos de seguridad, ya que tus credenciales se guardarán en texto plano. Una opción más segura es utilizar una clave SSH para la autenticación.
Si aún encuentras problemas de permisos con
.git/objects
, puedes intentar ejecutar el script como superusuario utilizandosudo
. Alternativamente, verifica los permisos de archivo del directorio.git
y su contenido para asegurarte de que tu usuario tenga los permisos apropiados.