es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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:

    #!/bin/sh
    cd rutahamirepositorio
    git add *.py
    git commit -m "realicé cambios"
    git config credential.helper store # esto guarda tus credenciales en un archivo de texto plano
    git push origin mimbranch
    echo Presiona Enter...
    

    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 utilizando sudo. Alternativamente, verifica los permisos de archivo del directorio .git y su contenido para asegurarte de que tu usuario tenga los permisos apropiados.

Comments are closed.