首页 > 解决方案 > 如何在 Git 的所有分支中检出最近更新的文件版本?

问题描述

我在master分支上的 Git 存储库上的整个工作过程中都更新了一个文件。我目前在另一个基于更早提交的分支上master,所以我看到的文件版本已经过时了。我还没有触及我当前分支上的文件。

我想检查该文件的完全更新版本。我知道该文件的最新版本(甚至在所有分支中)是我想要的版本,但我不知道那是哪个提交。

有没有办法在所有分支和提交中检查给定文件的最新更新版本?(我希望有一个单线。)

标签: git

解决方案


如果您的文件是dir/foo,那么在所有分支中获取最新提交的方法如下(更多信息在这里git-rev-list(1) 手册页):

git rev-list -1 --branches=* dir/foo

基于提交检出文件的方法是(更多信息在这里):

git checkout <commit> dir/foo

因此,单线解决方案(例如在 BASH 中)是:

git checkout `git rev-list -1 --branches=* dir/foo` dir/foo

推荐阅读