我们在测试服务器上创建了一个代码分支,多个用户正在通过SSH进入新服务器并使用命令行完成所有提交。但是,当然Git不知道谁在进行更改并提交它们,因此我们需要在提交期间指定作者。
我认为我们可以通过以下方式实现这一目标:
git commit -a -m 'removed temporary images' --author='deed02392 <foo@bar.net>'
但是这给了:
[test-branch 77b9357] removed temporary image
Author: deed02392 <foo@bar.net>
Committer: root <root@vs123.(none)>
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
If the identity used for this commit is wrong, you can fix it with:
git commit --amend --author='Your Name <you@example.com>'
1 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 derp.PNG
期望每个用户每次都更改配置似乎太过分了。这是因为Git不是为了让多个用户使用一个存储库吗?
答案 0 :(得分:2)
只要所有用户使用不同的系统帐户,运行
git config --global user.***
每个用户应该解决一次问题,即使所有用户都使用同一个repo,
因为这些设置是特定于用户的,并保存在$HOME/.gitconfig
。
(当然)如果他们在运行git之前su
root或其他一些共享帐户,它将无效。
答案 1 :(得分:2)
创意1:看看this link, which shows how to use environment variables to define the author names etc.
Idea2: 例如,Github有一个通用的'git'用户,每个人都用它来推送对他们的存储库的更改,并且他们通过ssh密钥区分用户。你可以尝试那个方向,虽然我不确定它是否适用于你的设置,因为你直接在服务器上工作。
这些链接相关:this link,this one。这是一个解释how gitolite does the ssh magic
的链接