首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能在reflog上加上一行吗?

我能在reflog上加上一行吗?
EN

Stack Overflow用户
提问于 2016-04-21 12:48:12
回答 2查看 275关注 0票数 3

由于一个拙劣的git commit --fixup,我正处于重基地地狱的中间。我想我已经找到消息来源了,我现在的处境比我开始的要好。然而,如果我看一下git,这一系列'rebase -i‘行看起来就像我以前失败的尝试一样。

我能把我自己的台词加到reflog里吗?说一些看起来会像:

代码语言:javascript
复制
$ git reflog mark '== we are not worse off than we started here =='
$ git reflog -3
cb6536f HEAD@{0}: mark: == we are not worse off than we started here ==
cb6536f HEAD@{1}: rebase -i (finish): fixup! foo: baz the widgets
9db07de HEAD@{1}: rebase -i (pick): fixup! baz: implement widget bazzing
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-21 19:34:22

您可以在任何时候使用git使用的相同命令添加一个新的reflog条目,即git update-ref。这是一个“管道”(面向脚本的)命令,所以它对用户不太友好,您可能需要添加自己的小包装脚本或别名。

示例:

代码语言:javascript
复制
git update-ref -m 'mark: whatever' HEAD HEAD
git update-ref -m 'mark: another thing' refs/heads/branch branch
git update-ref -m 'mark: third thing' refs/heads/branch refs/heads/branch
hash=$(git rev-parse refs/heads/branch) && \
   git update-ref -m 'mark: 4' refs/heads/branch $hash

注意,<ref> (第一个非选项参数)必须完整地拼写出来。<newvalue>可以是解析为有效的SHA-1的任何东西,这就是为什么三个示例的中间命令可以工作,但为了安全起见,最好使用第三种形式(准确地重复<ref> )或使用实际的SHA-1散列(第四种形式),让git rev-parse验证这实际上是一个有效的分支名称。

(在使用HEAD时,您可以跳过验证,因为如果HEAD不是有效名称,则git根本无法工作。)

票数 3
EN

Stack Overflow用户

发布于 2020-02-26 05:28:30

正如本2020螺纹中所提到的

还有core.logAllRefUpdates,它在更现代版本的Git中具有"always“的价值。 文件上说: 如果将该选项设置为always,则会自动为参考文献/下的任何ref创建缺少的reflog。 现在,假设您想要为所有的裁判重发,但没有太多的缺点是拥有一个重飞,而不是使用它。

杰夫·金斯补充道:

当前的规则实际上是附加到任何已经存在的重触发器,或者在决定是否创建不存在的重触发器时咨询core.logAllRefUpdates。因此,我认为设置一个一次性配置变量如下: -c core.logAllRefUpdates=always更新-参考文献/foo/bar. 将创建reflog,然后任何后续更新(即使没有配置集)都会追加到它。 您也可以这样做: mkdir -p . git /log/ref/ref/foo/ touch .git/log/ref/foo/bar git更新-参考文献/foo/bar. 但我不推荐。 当我们最终转向支持其他ref后端格式时,它们不一定会以相同的方式存储日志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36770141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档