我向一个新分叉的 Github git 库进行了推送,但是在提交后我发现我的用户名不正确。我推送的用户名是"Brock Woolf",但实际上应该是 brockwoolf
,这是我的 Github 用户名。
我已经像这样在本地更改了默认设置:
git config --global user.name "brockwoolf"
我如何在已经推送的更改中更改用户名?
如果已经推送了更改并且其他人已经拉取了代码,那么你只能接受这个事实。但是,如果没有人拉取代码(也就是说,如果你意识到自己在推送后犯了错误),你可以修改你的提交:
git commit --amend
请确保您不会向提交中添加任何新更改 - 不要使用 -a
,也不要先使用 git add
。然后您可以强制推送,因为这是非快进更改:
git push -f
如果有人已经拉取了错误名称的提交...这可能不会真正让他们出现问题,因为将其与包含原始提交的内容进行合并应该很容易;补丁是相同的。然而,如果那个人曾经向您的仓库推送过更改,他们将推送该合并 - 同时在其一侧包含原始提交。如果最终您的仓库中同时存在两个名称,这就有点失去了重新命名的目的。(这正是我在回答者评论中描述的问题。)[ -f | --force ]
,并且在选项部分的下面十个左右的位置下面有短名称和长名称的描述。它执行了我在答案中建议的操作:非快进式推送通常会被拒绝,但这将强制接受。 - Cascabelgit commit -a --amend
git pull
git push
如果你有更好的方法,请随意回答,我会将你的答案标记为正确。
git pull
拉取 origin/master
的原始位置,即 master@{1}
,也就是原始提交。然后将其合并。合并顺利进行,因为两边都做了完全相同的更改;唯一的区别是提交的名称和日期。两个提交仍然存在。 - Cascabelgit commit --amend --author="Author Name <commit-name>"
git push -f
user.name
,而不是“用户名”,即“用户的名称”。使用真实姓名非常普遍。 - Cascabel