Hexo: 能否hexo deploy 时指定git账户

Created on 30 Aug 2016  ·  14Comments  ·  Source: hexojs/hexo

hexo deploy默认使用全局的git user.name user.email,那么请问能否hexo deploy 时带上临时指定的git账户 或者 在_config.yml指定git账户 使得push时与全局git账户区分开

Most helpful comment

按照@NoahDragon 的方法是可行,但是漏了一点,如果.deploy_git目录已经生成的情况下,需要删掉整个目录,再执行一次hexo d才行。记录一下,以免其他人踩坑。

All 14 comments

可以用脚本实现,在hexo deploy之前将全局user更改,deploy完成之后再将user改回。

可以在_config.yml中设置

# You can use this:
deploy:
  type: git
  repo: <repository url>
  branch: [branch]
  message: [message]
  name: [git user]
  email: [git email]
  extend_dirs: [extend directory]

@NoahDragon 在_config.yml 的deploy中配置了name和email,但是hexo deploy时,使用的依旧是~/.gitconfig文件中配置的user.name和user.email

在Linux系统之下就没有这种问题了,Linux每次部署都需要验证,而windows似乎只是初始时验证了一次。

On Tue, Jan 3, 2017 at 3:17 PM, zewenwang notifications@github.com wrote:

@NoahDragon https://github.com/NoahDragon 在_config.yml
的deploy中配置了name和email,但是hexo deploy时,使用的依旧是~/.gitconfig文件中配置的user.name
和user.email


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/hexojs/hexo/issues/2125#issuecomment-270061334, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATUEQqZ0fkuH2RED5djAvqjXsHsZP9H9ks5rOfYUgaJpZM4Jwd_4
.

@zewenwang 是否有设置系统变量GIT_COMMITTER_NAME or GIT_AUTHOR_NAME

@WilliamYi96 sorry, 忘了说了,我这个是Mac OS,和纯Linux系统配置可能不是太一样。

@NoahDragon 没有配置这两个变量

可以到控制面板下的用户凭据,删除github的用户凭据,然后部署,会要求重新登陆,这样可以更换账户。亲测有效

@viger2012 Mac下怎么改?

按照@NoahDragon 的方法是可行,但是漏了一点,如果.deploy_git目录已经生成的情况下,需要删掉整个目录,再执行一次hexo d才行。记录一下,以免其他人踩坑。

@codezjx 删除了.deploy_git目录也不行呢?还是使用的默认用户进行提交,还有没有其他解决办法?

执行

eval $(ssh-agent)
ssh-add ~/.ssh/user2_rsa
hexo d

后成功了,参考:https://www.rxblog.xyz/a-pc-many-githubs/

我按照@codezjx的方式操作,然后GitHub.io之前所有的commit log都没有了,事实上.deploy_git下还存放着很多其它文件,不仅仅是和email相关的。
如果涉及到多github账户,需使用@weiyandy的方式,我是只有一个账户的情况下:
简单测试了下,修改“/hexo/.deploy_git/.git/config”文件中的email即可。完整操作如下:

  1. 按照@NoahDragon的方式修改_config.yml中deploy下的email
  2. 然后修改“/hexo/.deploy_git/.git/config”文件中的email;

该方式可能并不通用,欢迎反馈效果。

一个账户为什么还要修改email,因为github profile的contributions统计时需要满足的其中一个条件是commit email == github email.
hexo d比较频繁,每次更新导致github profile算一次contributions,但其实很多是价值不大的commit的,通过修改email,就可以不让github计算通过hexo d 提交的commit。

可以使用@NoahDragon 的方法,不过注意的是需要删掉.deploy_git文件夹,然后重新部署

一开始使用了@NoahDragon 的方法,即删掉 .deploy_git文件夹,然后重新部署,发现之前部署的log都没了。
然后用了 @csIng 的方法,有效。
另外,对于 @weiyandy 的方法,应该也有效,不过没测试。

Was this page helpful?
0 / 5 - 0 ratings