修改提交用户名邮箱
用git commit进行了一次版本提交,并推送到了远程仓库,若是想修改此次提交者用户名邮箱可以这样操作:
git commit --amend --author="newname <new@email.com>" #丢弃上一次版本提交,然后进行一次同上次一样的新版本提交(两次提交的commit id不同)
git push -f origin master #-f参数为强制推送到远程仓库,因为本地的上一次提交丢失了,而远程仓库还有,所以不加-f参数会报错说本地比远程少一个提交版本。
#要慎用这个-f参数强制推送命令,可能会覆盖远程仓库的提交版本,信息会完全丢失(尽管本地不会丢失reset回的版本)。
可以在本地用以下命令同步到指定的版本:
git reset --hard <commid id>
之后用git log查看版本后,比这个版本更新的版本就不会显示,但是这些版本并没有完全丢失(而是隐藏在本地)。
若通过git reflog查看到这些隐藏版本的commit id,还可以用以上命令同步回去。(仅限本地)
用push -f推送到远程仓库,那些隐藏的版本并不会推送到远程仓库,也就是说,远程仓库只会记录git log显示的版本。
再用git clone获取远程仓库,即使知道commit id,之前的隐藏版本也无法恢复(因为那些版本只隐藏在上一个本地)。