重置为Git中的第一个提交?

时间:2014-05-19 18:27:18

标签: git

--root命令的rebase命令中是否有等同于reset标志的内容?

git reset --root

假设我想重置为当前分支中的第一个提交:我是否必须手动挖掘历史记录并找到该提交的哈希值,或者是否有一种简单的方法可以重置为第一个可用的提交? / p>

3 个答案:

答案 0 :(得分:4)

根提交(可以有多个)是没有父母的提交。

这会找到当前提交的根提交(基本上是“当前分支的根目录”,除非它在分离的HEAD中起作用):

git rev-list --max-parents=0 HEAD

这将查找所有分支上的所有root提交:

git rev-list --max-parents=0 --branches

当然,您可以使用--tags--all代替--branches

通常,存储库中只有一个根,因此所有这些根目录都找到相同的版本,默认情况下rev-list会以合适的顺序打印修订版,因此manojlds' answer通常也可以正常工作。

编辑:当然,您必须将生成的SHA-1提供给git reset

答案 1 :(得分:2)

这是一种方式:

git reset --hard `git rev-list --all | tail -1`

答案 2 :(得分:1)

我在git reset内找不到方法,但您可以使用以下单行重置为回购的初始提交:

git log --pretty=format:%H | tail -1 | xargs git reset

基本上使用git log查找第一个提交,然后使用xargs您可以重置回来。