【问题标题】:git: Linux-Next, how to reset linux-next to a particular date?git:Linux-Next,如何将 linux-next 重置为特定日期?
【发布时间】:2015-10-02 15:26:54
【问题描述】:

我知道如果我们知道提交 id,那么我们可以对那个提交使用 reset --hard:

git reset --hard [[commit_id]]

Question 1:如果我想找到一个指定日期的提交,该怎么做?

看起来 Linux-next 会为每个日期添加一个标签,例如:

https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tag/?id=next-20151001

这是 10 月 1 日的标签,所以我可以很容易地找到当天的提交是 991f9697366015fef03eeeddb4d1ba0f44ff3dc7。

但是,如果我想访问 8 月 1 日的提交,请通过此链接:https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tag/?id=next-20150801

它会告诉我标签错误。为什么?

Question 2:我怎样才能找到 3 个月前的提交?

比如我知道一个6月4日的commit,commit id是:94feb25d6fcd34b0d45c18cf0185d83d0c13c60a

但是在我克隆的 Linux-next 中,如果我运行以下命令,它会抱怨无效提交;如果我跑

git 显示 94feb25d6fcd34b0d45c18cf0185d83d0c13c60a

,它会投诉坏对象。

如何重置 Linux-next 到 3 个月前?

user@test_machine MINGW64 /d/Test/linux-next ((e1883c6...)|BISECTING) $ git show 94feb25d6fcd34b0d45c18cf0185d83d0c13c60a 致命:坏对象 94feb25d6fcd34b0d45c18cf0185d83d0c13c60a

【问题讨论】:

  • 你最近做过git fetch吗?
  • linux-next 树不是 everyday 标记树。有些日子(通常是维护者的周末和节假日)不在那儿。

标签: linux git linux-kernel


【解决方案1】:

你不能,linux-next git 树每天都会重新建立基础,以前的标签和对象将从存储库中消失。

但是,有 linux-next-history 应该携带所有必要的对象: http://git.kernel.org/cgit/linux/kernel/git/next/linux-next-history.git/

【讨论】:

  • 谢谢!现在我可以从历史树中找到特定日期的提交。例如,对于 6 月 4 日,提交是 94feb25d6fcd34b0d45c18cf0185d83d0c13c60a。但是对于第二个问题:为什么符合 Linux-next 的 this 是一个无效对象?我认为即使是标签也已移至历史树,但提交应该在 Linux-next 中。我说的对吗?
  • 不,树被垃圾收集,未引用的对象消失。
【解决方案2】:

您想使用man git-log 中指定的--since--after

【讨论】:

    猜你喜欢
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2022-10-16
    • 2021-01-23
    • 2015-03-06
    相关资源
    最近更新 更多