git create stash而不需要配置user.email和user.name(git stash --author?)

时间:2016-04-22 15:51:59

标签: git git-stash git-config

简称

是否有可能创建存储(使用git stash create而不需要配置user.emailuser.name?类似于git commit --author选项的东西?

一些背景:

我有几台构建机器,我有一个构建用户。每个人都可以访问中央git存储库。但是,我没有为每个用户配置user.emailuser.name;因为他们永远不需要提交。

在我的一个脚本中,我使用

git stash create

(允许我使用git archive --format-gtz ...我会为你省略细节;见related question

但是此命令失败:

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <macq@chmalap.macqel>) not allowed
Cannot save the current index state

PS:我有git 1.8.4

3 个答案:

答案 0 :(得分:14)

使用git -c标志可以在命令行上传递配置参数:

git -c user.name=test -c user.email=test@test.com stash create

答案 1 :(得分:3)

使用Git 2.21(2019年第一季度,超过2年后),您无需配置user.emailuser.namegit stash --author ?)。

user.useConfigOnly下需要正确配置的用户名/电子邮件才能创建提交; 现在“ git stash”(即使它创建提交对象来表示隐藏条目)命令也不受此要求

请参见commit 3bc2111Slavica Djukic (``)(2018年11月18日)。
帮助者:Junio C Hamano (gitster)
(由Junio C Hamano -- gitster --commit 1328d29中合并,2019年1月4日)

  

stash:容忍丢失的用户身份

     

git stash”命令坚持使用与“ git commit-tree”和“ git commit”命令相同程度的可用用户身份,因为它使用与创建提交对象作为这些命令。

     

并非绝对必要这样做。

     

在创建提交对象之前检查我们是否会否驳倒,然后提供伪造的身份来取悦创建提交的机器。
  在没有有效标识的情况下,将测试添加到文档中,表明存储可以正确执行。

     

这并不是可用性方面的很大改进,因为运行“ git stash”的用户最终希望通过提交来将存储在存储在临时存储中的更改记录为更永久的历史记录,因此他们必须无论如何都是“ git config user.{name,email}”,因此可以说,这一更改只会延迟在存储库中工作所需的步骤。

答案 2 :(得分:0)

如果您只想从工作副本中删除任何本地更改,然后确定没有需要保存的内容以后再使用,则可以运行非常危险的 >命令:

git checkout .

这个问题可能比git stash create更为广泛(该问题适用于git stash的任何使用)。我回答的问题可能是这个问题的重复。