编写一行语句来后退 git 存储库中的一个提交

编写一行语句来后退 git 存储库中的一个提交

我想向后退一步,逐个提交,找到一些我覆盖的 css 样式。我知道git-bisect;我用过它,但它并没有帮助我找到我以前的工作。

我可以使用以下命令获取按历史顺序排列的提交哈希表:

$ git log --pretty=oneline | awk '{print $1;}'

f3791f1da33b9e92a3a5292a0542834aca0908ef
2720a9ec4bb5b4f7b4dd02b056c375e71a44be3c
a9bb455608db70c76545e5862b89a02f9e9f590d

所以我只需要抓住第一个,然后用git checkout它做一个。我尝试使用head,但我对传递语法了解不够,无法将输出正确传递给它:

$ $(git log --pretty=oneline | awk '{print $1;}') | head -1
bash: 0dcca7e530fca682552341718462af150fe27dc5: command not found

$ $(git log --pretty=oneline | awk '{print $1;}') > head -1
bash: 0dcca7e530fca682552341718462af150fe27dc5: command not found

如何获取上一个命令的输出顶部

我希望将其作为一行代码,以便我可以将其添加到我的 git 别名中,但如果不是,也没关系;我将制作一个 bash 函数。

答案1

要检查父提交,请运行

git checkout HEAD~1

这可能会令人厌烦地重复,直到到达第一次提交。

如果您需要探索导致合并的不同父级,请^改用:

git checkout HEAD^2

将检查当前合并提交的第二个父级。

git-rev-parse文档中的“指定修订”了解详情。

相关内容