Answers:
您正在寻找git diff。根据您的实际情况,有三种有用的使用方式:
# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
它将在目录上递归工作,如果没有给出路径,它将显示所有更改。
git add -p是检查所有文件的替代品。
git diff --staged [filename]您的主要答案,因为这是最经常需要的情况。
对我git add -p来说,复查所有未分段的更改(显示每个文件的差异)是最有用的方式(我想由git开发人员使用吗?),选择一组应该进行提交的良好更改,然后暂存所有这些内容,然后使用git commit,并重复下一次提交。然后,即使每次提交都发生在各种文件中,您也可以使它们成为有用或有意义的更改。我还建议为每个故障单或类似的活动创建一个新分支,并使用checkout(git stash在切换之前不希望使用,也许使用)在它们之间进行切换,尽管如果要进行许多快速更改,这可能会很麻烦。不要忘记经常合并。
好吧,我的情况是您不想关心文件列表。只显示它们全部。
当您已经运行git add了文件列表时:
$ git diff --cached $(git diff --cached --name-only)
在的最新版本中git,您也可以使用--staged,这是的同义词--cached。
相同的方法可用于尚未添加文件但没有--cached选项的情况。
$ git diff $(git diff --name-only)
Git的“ cached”选项别名:
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
您还可以使用git友好的文本编辑器。它们在已修改的行上显示颜色,为添加的行显示另一种颜色,为已删除的行显示另一种颜色,等等。
GitHub的Atom 1.0是一个很好的文本编辑器。
[filename]表示可选参数。)使用,*shell会列出所有文件,因此,如果您位于子目录中,则只会在该子目录中获取内容(而不是整个存储库),并且会丢失隐藏文件中的更改。