Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git-提交前当前更改的差异_Git_Ssh_Diff_Meld - Fatal编程技术网

git-提交前当前更改的差异

git-提交前当前更改的差异,git,ssh,diff,meld,Git,Ssh,Diff,Meld,我已经更改了git存储库中的几个文件,但尚未提交它们 我只需调用git status就可以得到一个更改列表。但是,除了文件名之外,我如何获得已更改的行或内容的列表 我最初考虑使用,但它似乎只对比较已经提交的更改有用 通常我只做meld.,但在这种情况下,我通过ssh连接到外部服务器。git diff默认情况下显示工作目录和索引之间的差异(下一次提交的暂存区域) 如果您已经将更改添加(暂存)到暂存区域,则执行作业。暂存区是由git commit形成下一次提交的数据 对Git初学者来说,最好的阅读(

我已经更改了git存储库中的几个文件,但尚未提交它们

我只需调用
git status
就可以得到一个更改列表。但是,除了文件名之外,我如何获得已更改的行或内容的列表

我最初考虑使用,但它似乎只对比较已经提交的更改有用


通常我只做
meld.
,但在这种情况下,我通过ssh连接到外部服务器。

git diff
默认情况下显示工作目录和索引之间的差异(下一次提交的暂存区域)

如果您已经将更改添加(暂存)到暂存区域,则执行作业。暂存区是由
git commit
形成下一次提交的数据

对Git初学者来说,最好的阅读(IMO):

  • (大多数章节;它解释了Git背后的模型并回答了大多数典型问题)
  • 然后立即(使用提示)

我在这种情况下使用的是:

git diff HEAD *
这将显示自上次提交以来的更改。尽管它在某种程度上可以更快地与

git diff .

要查看以前的
git add
ed文件的更改,请使用
staged
标志:

git diff --staged

暂存是否仅适用于尚未添加的文件?我想你必须使用cached标志。@peterbond
man git diff
说,
--staged是--cached
@peterbond技术上是staged的同义词,表示添加到暂存区域,但尚未提交。我已经在编辑中澄清了这一点。@Misha说,
git diff
的默认行为是计算工作目录和索引之间的差异,而不是
HEAD
我没有想到调用没有参数的git diff。谢谢
git diff --staged