我正尝试从我的工作笔记本电脑提交到github.com上的一个项目,这个项目已经配置为公司的git服务器。有没有办法指定不同的作者凭据来提交,可能的话使用不同的配置文件或其他命令行开关?
我试过用
--author="My Name <MyNameEmail@email.com>"
我收到了一条信息:
Committer: unknown <WorkEmail@workemail.net>
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
但它仍然没有更新我的用户名,以提交到github.com项目。还有什么我可以尝试,甚至是可能的?
6条答案
按热度按时间gc0ot86w1#
首先,提交者和提交者不一定是同一个人,Git会跟踪两者。
要设置仅用于此存储库的名称,您可以执行以下操作:
注意
--global
选项的缺失,这将只设置此存储库中的配置。或者,您可以使用
-c
选项仅对单个命令执行此操作:但我认为最好只使用上面的配置选项。
jc3wubiy2#
试着将以下代码添加到git命令的前面:
这对于一次性操作来说是可以的,但是你可以把它保存在从git克隆的本地存储库的.git/config文件中,这可以通过运行
git config
(不使用--global或--system来使它成为“本地存储库”)或者编辑.git/config
(语法与~/.gitconfig
相同daolsyd03#
您还可以在每个shell甚至每个命令的基础上设置环境变量
GIT_COMMITTER_NAME
、GIT_COMMITTER_EMAIL
、GIT_AUTHOR_NAME
和GIT_AUTHOR_EMAIL
。ubbxdtey4#
我相信你能跑:
对于git的不同部分,尝试打开正在向github服务器执行repo的文件夹。
确保在工作文件夹中看到.git文件夹。现在在终端/控制台/命令提示符中打开该文件夹,并尝试仅通过运行我上面指定的命令来更改该文件夹的用户名和电子邮件。
通过更改,您现在可以访问GitHub服务器。
看看这里:https://help.github.com/articles/setting-your-username-in-git
此外,我相信有一种方法可以通过在命令本身中使用github用户名和密码来推送到远程repo,但我没有引用它,因为它对我不起作用。
uhry853o5#
在Jesse Glick的回答之后,这里扩展了实现,因为IMO他的建议是实现这一点的最佳方法。
把下面的代码添加到你的.bash_profile中,当你在当前shell中第一次运行git命令时,它会提示你输入用户名,然后在以后的运行中记住这个用户名。
(很明显,在case块中交叉引用一个输入的user值到各个git auther/name值所需的确切名称和电子邮件地址,并根据需要更新assign)
rqcrx0a66#
您还可以在每个shell甚至每个命令的基础上设置环境变量
GIT_COMMITTER_NAME
、GIT_COMMITTER_EMAIL
、GIT_AUTHOR_NAME
和GIT_AUTHOR_EMAIL
。实际上,自Git 2.22(Q2 2019)以来,你有了一个新的选择:引入了四个新的配置变量
{author,committer}.{name,email}
,以便在更具体的情况下覆盖user.{name,email}
。参见William Hubbs (``)的commit 39ab4d0(2019年2月4日)。
(由Junio C Hamano --
gitster
--合并至commit 4e021dc,2019年3月7日)config
:允许提供单独的作者和提交者标识author.email
、author.name
、committer.email
和committer.name
设置类似于GIT_AUTHOR_*
和GIT_COMMITTER_*
环境变量,但适用于git config
系统。这允许为每个存储库单独设置它们。
Git支持用环境变量设置不同的作者和提交者信息,但是环境变量是在shell中设置的,所以如果不同的仓库需要不同的作者和提交者信息,就需要一个外部工具。
这为git config添加了对
author.email
,author.name
,committer.email
和committer.name
设置的支持,这样就可以为每个仓库设置这些信息。