代码之家  ›  专栏  ›  技术社区  ›  Kitty1911

添加git后,文件未显示在git diff中。我怎么知道它会被承诺?

  •  41
  • Kitty1911  · 技术社区  · 12 年前

    我有一个未跟踪的文件,它没有出现在git diff中,当我将它添加到“要提交的更改”区域时,它仍然没有显示在git diff中 git status -v 当我对HEAD做一个diff时。

    我对git还很陌生,所以有人能告诉我,即使文件没有显示在常规的diff中,也会提交吗?因为它已经被添加到暂存区了?

    5 回复  |  直到 9 年前
        1
  •  57
  •   David Cain    12 年前

    如果你想看 分阶段的 diff中的更改,您仍然可以使用 git diff ,你只需要通过 --staged 标志:

    david@pav:~/dummy_repo$ echo "Hello, world" > hello.txt
    david@pav:~/dummy_repo$ git status
    # On branch master
    #
    # Initial commit
    #
    # Untracked files:
    #   hello.txt
    nothing added to commit but untracked files present
    david@pav:~/dummy_repo$ git add hello.txt
    david@pav:~/dummy_repo$ git diff
    david@pav:~/dummy_repo$ git diff --staged
    diff --git a/hello.txt b/hello.txt
    new file mode 100644
    index 0000000..76d5293
    --- /dev/null
    +++ b/hello.txt
    @@ -0,0 +1 @@
    +Hello, world
    

    如果你只关心哪些文件被暂存,你当然可以 git status 但是 git diff --staged --name-only 将在其自己的行中给出每个分段的文件名。

        2
  •  38
  •   milkovsky Abs    11 年前

    要查看自上次提交以来工作树中的所有更改,包括新文件,请使用:

    git diff HEAD
    

    请在此处查看更多示例: git-diff

        3
  •  5
  •   Michael Durrant    12 年前

    正如你所看到的。它显示在 git status ,所以是的,当你 git commit

    您可能会发现使用gitx(Mac)或gitg(Linux)等可视化git工具很有帮助,

    它有很好的面板,可以向你展示舞台表演,而不是舞台表演等等。

    enter image description here

    我的屏幕截图似乎是多余的,因为我目前的状态没有任何变化。

        4
  •  1
  •   tom    12 年前

    如果您键入“git add __”,该文件将包含在您的下一次提交中。当您运行“git push”时,这个提交将被推送到服务器。

        5
  •  0
  •   Xavi    8 年前

    我想在大卫·凯恩的首要回答中添加以下细微差别:命令。。。

    git diff --staged
    

    …只显示了分阶段的更改(正如@rogerdpack所指出的)。

    现在,如果你只生成了一个文件的diff,那么我没有什么要添加的。但如果你想要的是生成一个diff文件 自最新HEAD以来的所有更改 “,那么您可能应该(1.)暂存所有有更改的文件,(2.)运行diff,(3.)取消暂存所有文件,如下所示:

    git add -A
    git diff --staged HEAD
    git reset
    

    不用说,请记住,这些命令将与 全部的 你以前暂存和未暂存的文件,所以如果你有很多临时文件,你应该小心。请参阅 git diff's 手册页了解更多信息。