3 回答
TA贡献1875条经验 获得超5个赞
保持当前更改
您可以使用保留工作,而无需提交git stash。您会习惯于git stash pop将其取回。或者,您可以(如carleeto所说)将git commit其转移到另一个分支。
使用rev-parse按日期结帐
您可以使用以下命令在特定日期之前签出提交rev-parse:
git checkout 'master@{1979-02-26 18:30:00}'
有关可用选项的更多详细信息,请参见git-rev-parse。
如评论中所述,此方法使用reflog在历史记录中查找提交。默认情况下,这些条目在90天后过期。尽管使用reflog的语法不太冗长,但您只能追溯到90天。
使用rev-list按日期签出
另一个不使用reflog的选项是,使用以下命令rev-list在特定时间点获取提交:
git checkout `git rev-list -n 1 --first-parent --before="2009-07-27 13:37" master`
如果只想要历史记录,而不想要合并带来的版本,请注意--first-parent。那就是你通常想要的。
TA贡献1804条经验 获得超2个赞
安迪的解决方案对我不起作用。在这里,我找到了另一种方法:
git checkout `git rev-list -n 1 --before="2009-07-27 13:37" master`
TA贡献1836条经验 获得超4个赞
看来您需要以下内容: 基于日期的Git结帐
换句话说,您用于rev-list查找提交,然后使用检出来实际获取它。
如果您不想丢失分阶段的更改,最简单的方法是创建一个新分支并将其提交到该分支。您始终可以在分支之间来回切换。
编辑:链接已关闭,所以这是命令:
git checkout `git rev-list -n 1 --before="2009-07-27 13:37" master`
- 3 回答
- 0 关注
- 413 浏览
添加回答
举报