git - 如何在 Git 的所有分支中检出最近更新的文件版本?
问题描述
我在master
分支上的 Git 存储库上的整个工作过程中都更新了一个文件。我目前在另一个基于更早提交的分支上master
,所以我看到的文件版本已经过时了。我还没有触及我当前分支上的文件。
我想检查该文件的完全更新版本。我知道该文件的最新版本(甚至在所有分支中)是我想要的版本,但我不知道那是哪个提交。
有没有办法在所有分支和提交中检查给定文件的最新更新版本?(我希望有一个单线。)
解决方案
如果您的文件是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
推荐阅读
- javascript - 我应该在 Promise 中包装 jquery ajax 还是直接返回 jquery ajax?
- c++ - 如何使用 scons 为使用 jenkins 的 solaris 兼容操作系统构建 C++ 代码?
- asp.net-core - 用户登录失败
在生产中,但本地客户端使用相同的连接字符串 - html - 表 TD 包装(错误)行为?
- typescript - 类型 'T' 不满足约束 'string | 号码 | 象征'。类型“T”不可分配给类型“符号”
- google-apps-script - 在谷歌卡中插入谷歌图表
- python - 带有 Click 命令别名的常规用法输出
- selenium - Jenkins 中的范围报告显示附加屏幕截图的空白图标
- android - Flutter/Dart:如何向 TextFormField 等单选按钮添加验证?
- mysql - MySQL程序不会插入任何数据,但它之外的查询可以工作