可能重复:
如何显示已上演的更改?
有没有办法可以看到file我做完之后所做的更改git add file?
也就是说,当我这样做时:
git add file
git diff file
Run Code Online (Sandbox Code Playgroud)
没有显示差异.我想有一种方法可以看到自上次提交以来的差异,但我不知道那是什么.
我上传了很多文件git add,现在我希望看到我上传的所有文件,无论有git diff --cached没有git status --cached.
我怎么做?使用时,--cached我可以看到我刚刚上演的变化..所以然后我尝试使用,git status但git add不幸的是,这不起作用git diff --cached.
我想获得一个只有分阶段文件名的列表.我找不到--name-only该git status命令的等效标志.什么是好的选择?
文件列表将通过管道传递给php -l(PHP lint语法检查器).
解决方案:完整的命令
git diff --name-only --cached | xargs -l php -l
Run Code Online (Sandbox Code Playgroud) git diff HEAD和之间有什么区别git diff --staged?我试过两个,但两个给出相同的输出.
这些是一回事吗?如果是这样,为什么会有这么多条款?!
另外,我知道有一个名为git stash的东西,你可以在这里暂时存储对工作副本的更改而不将它们提交给repo.我发现这个工具真的很有用,但同样,这个名字与git中的一堆其他概念非常相似 - >这非常令人困惑!
如果我运行,git diff我会看到工作树中的更改,如果我运行git diff --staged(或者--cached),那么我会看到上传的更改(w/git add),但有没有办法git diff一次性查看所有内容?
在阅读Git pre-commit hook:更改/添加文件后,出现以下问题:
鉴于我有一个包含分阶段和非分阶段更改的文件,如何在分段后显示文件内容的预览?
例:
echo "foo" >> file
git add file
echo "bar" >> file
Run Code Online (Sandbox Code Playgroud)
通缉输出:
[previous contents of file]
foo
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何显示已上演的更改?
是否有一种简单的方法来查看我在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而不必去场.
有时从肌肉记忆中,git commit -a当我有一些文件或文件的一部分小心地上演并准备好提交时,我会运行,导致我失去我谨慎的分期行动.
git commit -a如果有任何(文件或补丁)目前上演,有没有办法发出警告?
(显然,我应该用-a更少的钱来减轻我的问题,但我的问题仍然存在.)