gpt4 book ai didi

git - 有没有工具可以让 git 在图表中显示 "detached heads"?

转载 作者:IT王子 更新时间:2023-10-29 01:07:58 26 4
gpt4 key购买 nike

我经常引用 git log --graph --decorate --oneline --all --full-history 来查看我的分支的当前状态,但它不显示分离的头/匿名分支。有没有办法让分离的头出现在这个图中?

我知道 git reflog 存在,但它很难阅读,因为没有结构 - 你所要做的就是提交消息,如果我没有,它仍然可能是 WIP'尚未完成提交。

一些背景(这不是回答问题所必需的,但有助于解释它的动机):我是 Mercurial 用户,我的工作流程涉及很多匿名分支。我倾向于大量使用 hg heads 来检查这些 heads,并且经常使用 hg rebase 根据对目的有意义的内容来分离或组合一系列提交易于理解的代码审查。

当我习惯使用 git 时,我经常发现自己的头脑是分离的,例如,当我将某个分支的一些提交 rebase 以创建一个新分支时。使用 git reflog 发现这些分离的头很烦人,老实说,它们从通常的 git log 中消失有点可怕。我什至用这种方式忘记了旧的提交,并且不得不在一两天后将它们从 git reflog 中挖掘出来。在 Mercurial 中,这些提交将保留为匿名负责人,并且会提醒我需要完成它们。

最佳答案

听起来您正在尝试使用与 git 工作方式不太匹配的工作流程。

首先,git 中的“分离头”与 Mercurial 的“头”概念不同。 Git 只有一个 HEAD,它就是当前 checkout 的提交。 “分离”仅表示您当前没有 checkout 分支。因此,当您创建一个提交时,它不会与分支关联,并且当您 checkout 另一个提交时它会丢失。

在 Git 中,您关心的每个提交都应该可以从某个分支访问。没有“匿名分支”这样的东西,这就是为什么 git 在提交到一个分离的头上时会警告你。在一个分离的头上提交就像分配一个对象然后扔掉指针;这是可能的,但几乎从来不是你想做的。请记住,git 中的分支是轻量级的并且可以是短暂的。只需在提交之前创建一个分支,以便您可以再次找到您的提交。

综上所述,如果您真的想查看存储库的结构,包括仅从 reflog 引用的提交,您可以使用:

git log --graph --decorate $(git rev-list -g --all)

关于git - 有没有工具可以让 git 在图表中显示 "detached heads"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com