我有一些代码库,一些开发人员通过RDP工作并使用远程计算机上的IDE。我想知道是否有办法强制他们在提交更改时输入自己的名字。现在Git默认我的名字,这非常令人讨厌,因为我不是那个做出改变的人。
当某些内容被推送到GitHub时,它会询问用户名/密码,但我似乎无法在提交列表中找到该用户信息的任何指示。
** 编辑 ** FYI **
我的初衷是强制每次运行提交命令时,在共享帐户(不可避免)下登录的用户输入其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(它是主要用例)始终如一地工作。
这导致我尝试使用Git的pre-commit
钩子,我基本上使用了为Bash修改的相同脚本。这也行不通,因为Git在调用钩子之前会分配“作者”。
换句话说,如果用户配置为name = jim
且email = bob@test.com
,则Git日志会将作者设为jim<bob@test.com>
,然后 next 提交将具有输入的信息。
#!/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
答案 0 :(得分:3)
你看起来处于一个肮脏的开发设置中,所以很脏:
创建一个用于删除Git用户名和电子邮件的登录脚本,开发人员必须在每次连接到计算机时输入它。
git config --remove-section user
然后,如果没有配置,Git会在第一次运行时询问姓名/电子邮件。
当然,创建Windows用户会话并使用每个用户的Git配置更好:)