1

一部の開発者が RDP 経由で作業し、リモート マシン上にある IDE を使用するコード ベースがあります。変更をコミットするときに自分の名前を強制的に入力する方法があるかどうかを知りたいです。現在、Git はデフォルトで私の名前を使用していますが、変更を行ったのは私ではないため、非常に迷惑です。

また、何かが GitHub にプッシュされると、ユーザー名/パスワードが要求されますが、コミット リストにそのユーザーの情報が表示されていないようです。

**編集**参考**

私の当初の意図は、commit コマンドが実行されるたびに、共有アカウント (避けられない) でサインインしたユーザーuser.nameに資格情報を入力するよう強制することでした。user.emailこれを実現するために、新しい人がログインするたびにこれらの値を本質的にクリアして設定する Windows 用のログイン スクリプトを使用しようとしました。

@echo off
cls

REM * Notify user
echo Clearing Git user information...

REM * Go to Git directory
cd C:\"Program Files (x86)"\Git\bin\

REM * Clear user information
git config --global --remove-section user

REM * Get the user's name
set /p name= Please enter your first name:

REM * Get user email
set /p email= Please enter your email:

REM * Set Git configuration
git config --global user.name "%name%"
git config --global user.email "%email%"
::REM * exit
exit

しかし、主なユースケースである RDP を介して一貫して動作させることはできませんでした。

pre-commitこれにより、Bash 用に変更された基本的に同じスクリプトを使用した Git 用のフックを使用しようとしました。Git はフックを呼び出す前に「作成者」を割り当てるため、これも機能しませんでした。

つまり、ユーザー構成がname = jimでありemail = bob@test.com、Git ログに作成者が含まれjim<bob@test.com>ている場合、次のコミットには入力された情報が含まれます。

#!/bin/sh
#
exec < /dev/tty

# Notify user
echo "Clearing Git user information..."

# Go to Git directory
#cd c:\"Program Files (x86)"\Git\bin\

# Clear user information
git config --global --remove-section user

# Get the user's name
echo "Please enter your first name: "
read name

# Get user email
echo "Please enter your email: "
read email

echo name: $name email: $email
read -n 1

# Set Git configuration
git config --global user.email $email
git config --global user.name $name
#exit
4

1 に答える 1

3

あなたは汚い開発セットアップにいるように見えるので、何か汚い:

Git のユーザー名と電子メールを消去するログオン スクリプトを作成します。開発者はマシンに接続するたびにそれを入力する必要があります。

git config --remove-section user

Git は、構成されていない場合、最初の実行時に名前/電子メールを要求します。

もちろん、Windows ユーザー セッションを作成し、ユーザーごとに Git 構成を行う方が優れています :)

于 2012-12-10T15:09:45.927 に答える