代码之家  ›  专栏  ›  技术社区  ›  silkfire thezar

smartgit未在日志中显示未斜接的更改

  •  0
  • silkfire thezar  · 技术社区  · 6 年前

    我的SmartGit客户端有问题(但可能与Git有关)。

    我有一些未斜接的更改,所以我假设这将显示为图形(日志视图)中的第一行,但它没有显示出来。我如何将其返回?

    此屏幕截图显示了我要查找的内容:

    另外,我完全在本地工作,所以我没有远程存储库(不确定这是否会有什么不同)。

    在bash shell中运行命令 git log--all--decorate--oneline--graph 时,我也不会得到未提交的更改。什么数字?

    此屏幕截图显示了我要查找的内容:

    enter image description here

    另外,我完全在本地工作,所以我没有远程存储库(不确定这是否会有什么不同)。

    运行命令时 git log --all --decorate --oneline --graph 在巴什壳里我不知道 未提交的更改 行也可以。什么数字?

    1 回复  |  直到 6 年前
        1
  •  0
  •   torek    6 年前

    这真的只是你问题最后一部分的答案,不用 git log --all --decorate --oneline --graph

    gitk (Git附带的GUI)显示这样的节点; git log --graph

    如果您有一个名为 README.md 自述文件.md

    • 自述文件.md HEAD

      如果你把其他两个版本的 头部 git checkout HEAD README.md

    • 一秒钟 下一个 改变

      自述文件.md 在新提交中将匹配 自述文件.md 从当前提交中得到的。其他文件也是如此。

      在命令行上,通常使用 git add README.md .它将文件的工作树版本(参见最后一个要点)复制到索引中。如果您决定希望索引副本返回到当前提交中的显示方式,则可以使用 git reset HEAD README.md .这和 git checkout -- README.md 除了它 只有 覆盖索引版本 头部 版本。

    • 最后,还有 自述文件.md 可以在编辑器中实际打开的文件,使用文件查看器查看的文件,等等。此文件是您的 工作树 .它是普通的,非git格式,因此您可以使用它。

      在某些方面,这是Git最不关心的文件。在你把它复制到索引中之前,它只是噪音Git甚至都不看它。这个 git status 但是,命令会将索引版本与工作树版本进行比较,并告诉您它们是否不同。

    注意什么? Git状态 是要跑吗 git diff S:第一个比较 头部 提交到索引。不管这里有什么不同 准备提交 .第二个 差异比较 将索引与工作树进行比较。不管这里有什么不同 未准备提交 .

    当Gitk这样的图形查看器向您显示用于未提交更改的节点时,它要么合并索引树和工作树,要么忽略这两者之一。不管怎样,它所显示的都不是事实!不过,知道你 有未提交的更改是有价值的,无论这些文件是阶段性的、未分级的或两者都有(例如,可能 自述文件.md 是分段的,其他一些文件是未分段的)。很高兴能有办法展示这一点。


    1个 这既是夸大其词,又是轻描淡写。由于您可以创建新文件或删除现有文件,因此有时索引和/或工作树的版本不存在于 头部 反之亦然。这就是过度强调的地方:某些文件可能只有一两个版本。同时,你可以提取 任何 提交的版本 任何 文件位于 任何时候 所以这是一个轻描淡写的说法,但是 头部 提交版本特别重要,因为它是 Git状态 与索引比较时使用。最后,在处理有冲突的合并时还有另一个特殊情况:在本例中,索引本身包含(最多)三个版本的冲突文件,这样您就可以得到每个文件更同时可用的版本。