gpt4 book ai didi

git checkout 分支特定时间

转载 作者:太空狗 更新时间:2023-10-29 13:46:55 28 4
gpt4 key购买 nike

我正在搜索一个单一的 git 命令(如果可能)以在特定时间(即我的本地分支时间)从一个存储库中 check out 文件。

场景:我在某个时间检查了 Branch1,可能是 2 天前(11/12/2015 19:05)。我想 checkout 另一个分支,即 2 天前的 Branch2(2015 年 11 月 12 日 29:05 即 Branch1 checkout 时间后 10 分钟)。

我怎样才能做到这一点?

如果更容易的话,我可以使用 unix 时间戳代替日期。

如果我使用“git log -1 --format=%ct”,它会给我时间戳。然后我可以将 10 分钟添加到此时间戳并使用以下命令进行 checkout 。

git archive --format tar --remote <HUB>:<REPO> master:`dirname <FILEPATH>` | tar -xO <FILE> > log_file.git

可以在一个命令中实现吗?

最佳答案

Git 将每次提交的时间存储在存储库中,但存储库中的存储并不是基于更改发生的时间。 git 存储库数据是根据更改本身构建的。

您不能依赖存储库将每个提交都按时间顺序应用到存储库。例如,可以从不同的分支中挑选一个较旧的更改到当前分支,并且它的提交日期将保留为原始日期,但上一次提交的日期晚于这个挑选的日期。

现在,这只是为了解释。对于您的情况,我相信您知道您是如何对存储库进行更改的。不过,git 不会让您根据时间进行选择。

我推荐的是使用 git log 查找两天前的提交,然后手动查看历史记录以查找十分钟后发生的更改。

当您找到您感兴趣的修订版本的散列时,将其 check out 到一个新分支中,如下所示:

git checkout <hash> -b newbranch

关于git checkout 分支特定时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670081/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com