- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想要的是 -
git checkout FHEAD~ path/filename
我目前所做的是通过 -
查找文件的先前版本 git log -1 --skip=1 path/filename
然后,
git checkout <previous-commit-hash> path/filename
最佳答案
检索文件先前版本的别名的简单示例。
这里的技巧是使用 --format 格式化日志输出以仅返回提交哈希
[alias]
prev = "!f(){ git checkout $(git log -1 --format="%H" --skip=1 -- ${GIT_PREFIX:-.}/$1) -- ${GIT_PREFIX:-.}/$1; git reset ${GIT_PREFIX:-}/$1; }; f"
使用 git log -1
可确保 git prev
始终返回直接父文件。选择下一个 parent 可能会更复杂。
另请注意,文件一旦 checkout ,就会立即添加到索引中。它不会 merge 到您现有的副本中,并且不会警告覆盖本地更改。我调用了 git-reset 以确保 checkout 文件仅位于工作目录中,而不是索引中。
GIT_PREFIX
的使用允许您输入相对路径,尽管只有相对较新版本的 git 支持 GIT_PREFIX。
编辑..
同样的事情使用 git rev-list.. 一个非常强大的 git 命令,设计用于在编写脚本和自动化时遍历 git 祖先图...
[alias]
prev = "!f(){ git checkout $(git rev-list --max-count=1 --skip=1 HEAD -- ${GIT_PREFIX:-.}/$1) -- ${GIT_PREFIX:-.}/$1; git reset ${GIT_PREFIX:-}/$1; }; f"
关于git - Git 中是否有一个文件的先前版本的简写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404448/
我的应用将 SceneKit 内容的“页面”与图像和文本交替。当我从图像页面前进到新的 SceneKit 页面时,前一个 SceneKit 页面中的内容会短暂显示,然后被新内容替换。时髦。 我只使用一
我正在尝试处理(在 C# 中)包含一些数字数据的大型数据文件。给定一个整数数组,如何对其进行拆分/分组,以便如果下一个 n(两个或更多)是负数,则前一个 n 元素被分组。例如,在下面的数组中,应该使用
刚接触promises,研究过。所以我的代码和我的理解: sql.connect(config).then(function(connection) { return connection.req
目前我在 if (roobaf) block 中有一些代码,这取决于 foo 和 bar 是否为假。我可以在 block 内再次检查这些条件,但感觉像是不必要的代码重复。 if (foo) {
我是一名优秀的程序员,十分优秀!