Remplacer l’utilisateur configuré pour un seul commit git

J’essaie de m’engager dans un projet sur github.com à partir de mon ordinateur portable de travail, qui est déjà configuré pour le serveur git de la société. Existe-t-il un moyen de valider en spécifiant différentes informations d’identification de l’auteur, en utilisant un fichier de configuration différent ou d’autres parameters de ligne de commande?

J’ai essayé d’utiliser

--author="My Name " 

et j’ai reçu le message:

  Committer: unknown  Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly: git config --global user.name "Your Name" git config --global user.email you@example.com After doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 

mais il n’a toujours pas mis à jour mon nom d’utilisateur pour m’engager dans le projet github.com. Y a-t-il autre chose que je peux essayer et est-ce possible?

Tout d’abord, l’auteur n’est pas nécessairement le même que le committer. Git suit les deux.

Pour définir quel nom utiliser uniquement pour ce référentiel, vous pouvez faire:

 git config user.name "Your Name" git config user.email "Your email" 

Notez l’absence de l’option --global . Cela définira la configuration dans ce référentiel uniquement. Vous pouvez aussi aller via la ligne de commande en utilisant l’option -c :

 git -c "user.name=Your Name" -c "user.email=Your email" commit ... 

Mais je pense qu’il vaut mieux utiliser les options de configuration ci-dessus.

Essayez d’append ceci à votre commande git:

 git -c user.email=email@domain.fr -c user.name='Your Name' 

C’est ok pour un one-shot, mais vous pouvez préférer l’enregistrer dans le fichier .git / config du repo local que vous avez cloné à partir de git. Cela peut être fait en exécutant git config (no –global ou –system pour le rendre “local au repo”) ou en éditant le .git/config (c’est la même syntaxe que ~/.gitconfig

Vous pouvez également définir les variables d’environnement GIT_COMMITTER_NAME , GIT_COMMITTER_EMAIL , GIT_AUTHOR_NAME et GIT_AUTHOR_EMAIL pour chaque shell, voire chaque commande.

Je crois que vous pourriez courir:

 git config user.name "Your Name" git config user.email you@example.com 

pour différentes parties de git. Essayez d’ouvrir le dossier où le travail est effectué pour le repository sur le serveur github.

Assurez-vous que vous voyez un dossier .git dans ce dossier de travail. Ouvrez maintenant ce dossier dans Terminal / Console / CommandPrompt et essayez de modifier le nom d’utilisateur et le courrier électronique de ce dossier uniquement en exécutant les commandes que j’ai spécifiées ci-dessus.

En modifiant cela, vous pouvez maintenant accéder au serveur GitHub.

Jetez un oeil ici: https://help.github.com/articles/setting-your-username-in-git

De plus, je pense qu’il est possible de passer à un repo distant en utilisant votre nom d’utilisateur et mot de passe github dans la commande elle-même, mais je ne le cite pas car cela n’a pas fonctionné pour moi.

Suite à la réponse de Jesse Glick ici avec une mise en œuvre élargie parce que sa suggestion par l’OMI est la meilleure façon d’y parvenir.

Ajoutez le ci-dessous à votre .bash_profile. Il vous demandera un utilisateur lors de la première exécution d’une commande git dans le shell actif. Il se souviendra alors de l’utilisateur pour toutes les exécutions ultérieures.

(évidemment, recoupez une valeur d’utilisateur en entrée avec les noms et adresses de messagerie souhaités pour les différentes valeurs de git auther / name dans le bloc de cas et mettez à jour les assignations si nécessaire)

 git() { echo "Running BETTER git..." if [ -z "$GIT_COMMITTER_NAME" ]; then while true; do read -p "Git User: " UNAME case $UNAME in user1 ) break;; user2 ) break;; * ) echo "Invalid User";; esac done GIT_COMMITTER_NAME=$UNAME export GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL=$UNAME@domain.com export GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME=$GIT_COMMITTER_NAME export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL=$GIT_COMMITTER_EMAIL export GIT_AUTHOR_EMAIL fi echo " using git user: $GIT_AUTHOR_NAME / $GIT_AUTHOR_EMAIL" /usr/bin/git "$@" }