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

IQA*_*eas 5 git

是否有任何--rootrebase命令中的标志等效的reset命令?

git reset --root
Run Code Online (Sandbox Code Playgroud)

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

tor*_*rek 5

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

这将找到当前提交的根提交(基本上,“当前分支的根”,除了它甚至可以与分离的 HEAD 一起工作):

git rev-list --max-parents=0 HEAD
Run Code Online (Sandbox Code Playgroud)

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

git rev-list --max-parents=0 --branches
Run Code Online (Sandbox Code Playgroud)

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

通常,存储库中只有一个根,以便所有这些都找到相同的修订,并rev-list默认以合适的顺序打印修订,因此manojlds 的回答通常也有效。

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


man*_*lds 2

这是一种方法:

git reset --hard `git rev-list --all | tail -1`
Run Code Online (Sandbox Code Playgroud)