Cómo hacer que git no pregunte por el password (credencial) para automáticamente añadir archivos con Add, hacer commit y push con Script

Si usted tiene varios repositorios de git en Linux y a todos los modifica frecuentemente tal vez está cansado de siempre tener que hacer add, commit y push en cada uno de ellos para enviar los cambios a github además de siempre tener que poner usuario y contraseña. La siguiente es la solución para que ya no se vuelva a preguntar por la contraseña y hacer un script para automáticamente subir los cambios con push a todos los repositorios remotos

IDENTIFICARSE EN GIT

Para que esto funcione usted debe identificarse en Git para que sepa quién es, si ya lo hizo omita este paso, pero si no lo ha hecho ponga los siguientes comandos uno por uno para añadir el nombre de usuario, correo, y su contraseña (modifique con sus datos):

git config --global user.name "suusuario"

git config --global user.email su.correo@gmail.com

git config --global user.pass su-contraseña

Al hacer esto se habrá creado el archivo ~/.gitconfig que ahora tendrá los siguientes datos:

[user]
    name = suusuario
    email = su.correo@gmail.com
    pass = su-contraseña

Si en algún momento quiera usted hacer alguna modificación puede editar el archivo .gitconfig con gedit u otro editor de textos ejemplo:

gedit ~/.gitconfig

aquí una imagen:


 

ALMACENAR CREDENCIALES EN GIT PARA QUE YA NO LAS VUELVA A PEDIR

 Inicie el siguiente comando para activar el almacenamiento de credenciales para todos (global, en su ordenador) los repositorios (significa que de aquí en adelante ningún repositorio le volverá a pedir sus credenciales):

git config --global credential.helper store

Cuando el almacenamiento de credenciales está habilitado, la primera vez que haga push o pull a cualquier repositorio remoto de Git se le pedirá por ultima vez el nombre de usuario y contraseña y se guardarán en el archivo:

~/.git-credentials

 aquí  pongo una imagen del archivo:


desde ese momento en adelante durante las próximas comunicaciones con el repositorio remoto de Git ya no tendrá que proporcionar el nombre de usuario y la contraseña.

Cada credencial en el archivo ~/.git-credentials se almacena en su propia línea como una URL así como la siguiente:


https://<USERNAME>:<PASSWORD>@github.com 

Actualizar el Token

Cuando se caduque el Token usted puede editar el archivo git-credentials abriendolo con Gedit u otro editor de textos:

gedit ~/.git-credentials

aquí pongo una imagen:

y allí cambie el token por el nuevo que haya generado

CONSULTAS:

Git - Config Username & Password - Store Credentials - ShellHacks
https://www.shellhacks.com/git-config-username-password-store-credentials/

 

HACER EL SCRIPT PARA AÑADIR LOS ARCHIVOS CON ADD, HACER COMMIT Y PUSH VÍA BATCH

Abra Gedit y pegue lo siguiente:

#!/bin/bash
### Proyecto 1 ###
cd /home/wachin/github-2/icon-theme-linux-development/
git add .
git commit -m "Guardar automáticamente el commit $(date)"
git push origin master 

### Proyecto 2 ###
cd /home/wachin/github-2/Ubuntu-WachiManuales-A-L/
git add .
git commit -m "Guardar automáticamente el commit $(date)"
git push origin master

recuerde que debe cambiar la ruta por la ruta donde están sus repositorios, vea el ejemplo de mi primer repositorio:



y ahora mi segundo repositorio:



Nota: Usted puede hacer esto con todos los repositorios que usted quiera. En este ejemplo están dos, pero usted puede copiar el pegar el texto necesario para añadir otro u otros. Sólo es cuestión de copiar, pegar y cambiar los valores

Guarde el archivo con este nombre (en su HOME):

autosave-script

observe la siguiente imagen:



Ahora ponga en la terminal :

chmod 755 autosave-script

Si usted quiere ver qué es lo que pasa al ejecutar el script, ponga en la terminal:

./autosave-script


aquí les dejo una imagen:



y así se verá:



hacer esto es sólo para ver lo que está pasando (a veces es bueno ver si todo va bien pues puede que alguna vez de algún error por que haya que haber un merge).

Para hacerlo funcionar sin la terminal basta con darle doble clic al archivo para que funcione (aunque no se verá nada de lo que está pasando):



 

 Pros

Este método es bueno para un sólo usuario que use los repositorios y dandole doble clic al script se mantendrán actualizados todos los repositorios

Contras:

Si uno de los repositorios es modificado por otro usuario ya no podrá hacer push hasta hacer un merge.

Si no usa mucho alguno de los repositorios añadidos al script es posible con el paso del tiempo se adelanten muchos commits


Alguna pregunta me dicen.



CONSULTAS:

authentication - Git push requires username and password - Stack Overflow
https://stackoverflow.com/questions/6565357/git-push-requires-username-and-password

github - Git keeps prompting me for a password - Stack Overflow
https://stackoverflow.com/questions/7773181/git-keeps-prompting-me-for-a-password

automatic authentication with svn and git - Ask Ubuntu
https://askubuntu.com/questions/988849/automatic-authentication-with-svn-and-git/988852


PUBLIQUÉ ADEMÁS ESTO MISMO EN:

Git commit and push via batch file on Ubuntu - Ask Ubuntu
https://askubuntu.com/questions/764274/git-commit-and-push-via-batch-file-on-ubuntu/1203474#1203474

Comentarios