我上演了一些改变来承诺; 如何查看为下一次提交而暂存的所有文件的差异?我知道git状态,但我想看到实际的差异 - 而不仅仅是分阶段文件的名称.
我看到git-diff(1)手册页说
git diff [--options] [ - ] [...]
此表单用于查看您对索引所做的更改(下一次提交的暂存区域).换句话说,差异是你可以告诉git进一步添加到索引但你还没有.您可以使用git-add(1)暂存这些更改.
不幸的是,我无法理解这一点.必须有一些方便的单行,我可以创建一个别名,对吗?
可能重复:
如何显示已上演的更改?
是否有一种简单的方法来查看我在git中待定的分阶段更改的差异?我已经上传了几个文件但是想在我按下按钮之前最后看一下我提交的内容.我还有其他几个非分阶段的更改,我希望在单独的提交中进行,因此取消暂存,执行git diff,然后分页到我想要的文件并不是一个理想的选项.
例:
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: foo.java
#
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: bar.java
# modified: baz.java
# modified: qux.java
Run Code Online (Sandbox Code Playgroud)
我真的只是想看看我改变了什么foo.java而不必去场.
在处理另一个文件时,我编辑README.md然后运行git add README.md.在进行git提交时,我发现这README.md两者都在"要提交的更改"和"未提交的提交更改"中.
这有意义吗?.git我可以在哪里查看此文件的权威状态?
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
# modified: utils/arrterm
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
Run Code Online (Sandbox Code Playgroud) 有没有办法查看同一文件的版本staged和unstaged版本之间的差异?
例如:
Changes to be committed:
modified: conf/application.conf
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: conf/application.conf
Run Code Online (Sandbox Code Playgroud)
当我进行更改然后再次修改文件而不进行暂存时会发生这种情况.
EDIT
该git status -vv命令还不够好,因为我需要使用diff/ difftool命令.这是因为在实践中,太多文件中的更改太多,滚动浏览所有文件并不高效.但diff/ difftool允许我指定我感兴趣的文件.