如何 git checkout -b 从两周前或特定日期开始?

How to git checkout -b from two weeks ago or from an specific date?

我正在尝试从 master 分支检出我的代码的旧版本,我正在执行以下操作:

git checkout -b master_de1974 `git rev-list -n 1 --before="5 days ago" master`

这是正确的命令吗?我如何确定我得到的是旧代码而不是新代码?

您应该参考特定的提交以确保您使用的是您期望的 "position" 代码版本。

要查找提交编号,您可以检查 github/bitbucket 或您的远程存储库。如果您还没有 "UI repository",您可以使用 git log 命令列出您的提交,https://git-scm.com/docs/git-log,例如:

git log -n10

将显示已保存到树中的最后 10 个提交。一旦你找到你的提交,你可以从这里创建你的新分支:

git checkout -b master_de1974 a9c146a09505837ec03b

其中 a9c146a09505837ec03b 是您的提交编号。然后你可以确定你是好的 date/commit,再次输入

git log -n1

它应该会显示您选择返回的提交。

我认为这是可行的(不是我的答案),我试过了并且似乎有效: https://gist.github.com/viktorkelemen/5101763

git checkout $(git rev-list -n1 --before="2 weeks ago" master)