预期提交者姓名 Git 推送问题
Expected Committer Name Git Push Issue
我正在尝试 commit/Push 一些代码到 GIT,但是当我尝试使用 SourceTree 提交代码时它给了我一个错误:
remote: Push rejected.[K
remote:
remote: refs/heads/Branch Details: 6a5d6d4cdd53db591e53db78c51225a619af487f: expected committer name 'Your Name Complete' but found 'Your Name'[K
remote:
提交已完成,但代码未推送到远程。
我刚刚在全局设置中注意到我的是 "Your Name" 并且我在全局配置中更改了它(TO:您的姓名完整),还验证了 Tools --> Options
中的名称及其显示 "Your Name Complete" 现在。
我也试过:
git config --global user.name "Correct User Name"
git config --global user.email "your@email.com"
但是还是无法推送更改,还是同样的错误 谁能帮我把代码推送到远程仓库?
按照 this blog post 的示例(它是针对标签的,在您的情况下是针对分支 HEAD),您至少需要修改要推送的分支 HEAD:
git commit --amend --allow-empty --author="LastName, FirstName <name@email.com>"
然后推送。
希望如果用户可以reset/revert本地提交,然后在更正全局配置中的名称后重新提交代码,这将使推送成功。这是一种还原提交的方法:
git reset HEAD~1 -- revert changes made to the index (i.e., that you have added)
现在,我尝试了空提交,还尝试用一些 space 提交同一个文件(尝试伪提交),但两者(上述解决方案和伪提交)对我都不起作用。然后我只是删除克隆的存储库并重新克隆它,然后再次提交代码,这次 Push 成功完成,因为我已经在配置中更改了名称。
发布此答案是因为我今天遇到了类似的问题,而其他答案中针对该主题提供的建议对我没有用。以下是我为解决该问题所做的工作:
a) 已验证 user.name 和 user.email 符合本地和全局 git 文件
的预期
本地 Git 配置文件 -> 名称 'config',无扩展名,存储在本地 repo 文件夹
的“.git”目录下
全局 Git 配置文件 -> 没有名称,只有扩展名,名为“.gitconfig”,存储在用户配置文件文件夹中,如 "C:\Users\yourusername" 文件夹
这很好。
b) 我之前的提交已成功推送。所以,我比较了之前的git推送和新的git推送。我观察到,通过新的 git 推送,我试图推送多个提交并将其组合为单个提交。合并提交后,我能够成功推送我的更改。
我遇到了同样的问题,还原更改,然后更新 git 配置并重新提交对我有用。
这对我有用
查看提交者在本地的名字
git log --pretty=fuller @{u}..HEAD
根据全局进行更改
git config --global user.name "FirstName Lastname"
git config --global user.email "FirstName.Lastname@domain.com"
这只会更改新的提交,因此要重新生成提交,请尝试推送更新的元数据
git commit --amend --reset-author
现在 git 推送应该可以工作了
我正在尝试 commit/Push 一些代码到 GIT,但是当我尝试使用 SourceTree 提交代码时它给了我一个错误:
remote: Push rejected.[K
remote:
remote: refs/heads/Branch Details: 6a5d6d4cdd53db591e53db78c51225a619af487f: expected committer name 'Your Name Complete' but found 'Your Name'[K
remote:
提交已完成,但代码未推送到远程。
我刚刚在全局设置中注意到我的是 "Your Name" 并且我在全局配置中更改了它(TO:您的姓名完整),还验证了 Tools --> Options
中的名称及其显示 "Your Name Complete" 现在。
我也试过:
git config --global user.name "Correct User Name"
git config --global user.email "your@email.com"
但是还是无法推送更改,还是同样的错误 谁能帮我把代码推送到远程仓库?
按照 this blog post 的示例(它是针对标签的,在您的情况下是针对分支 HEAD),您至少需要修改要推送的分支 HEAD:
git commit --amend --allow-empty --author="LastName, FirstName <name@email.com>"
然后推送。
希望如果用户可以reset/revert本地提交,然后在更正全局配置中的名称后重新提交代码,这将使推送成功。这是一种还原提交的方法:
git reset HEAD~1 -- revert changes made to the index (i.e., that you have added)
现在,我尝试了空提交,还尝试用一些 space 提交同一个文件(尝试伪提交),但两者(上述解决方案和伪提交)对我都不起作用。然后我只是删除克隆的存储库并重新克隆它,然后再次提交代码,这次 Push 成功完成,因为我已经在配置中更改了名称。
发布此答案是因为我今天遇到了类似的问题,而其他答案中针对该主题提供的建议对我没有用。以下是我为解决该问题所做的工作:
a) 已验证 user.name 和 user.email 符合本地和全局 git 文件
的预期本地 Git 配置文件 -> 名称 'config',无扩展名,存储在本地 repo 文件夹
的“.git”目录下全局 Git 配置文件 -> 没有名称,只有扩展名,名为“.gitconfig”,存储在用户配置文件文件夹中,如 "C:\Users\yourusername" 文件夹
这很好。
b) 我之前的提交已成功推送。所以,我比较了之前的git推送和新的git推送。我观察到,通过新的 git 推送,我试图推送多个提交并将其组合为单个提交。合并提交后,我能够成功推送我的更改。
我遇到了同样的问题,还原更改,然后更新 git 配置并重新提交对我有用。
这对我有用
查看提交者在本地的名字
git log --pretty=fuller @{u}..HEAD
根据全局进行更改
git config --global user.name "FirstName Lastname"
git config --global user.email "FirstName.Lastname@domain.com"
这只会更改新的提交,因此要重新生成提交,请尝试推送更新的元数据
git commit --amend --reset-author
现在 git 推送应该可以工作了