如果我运行,git diff
我希望看到我的工作目录相对于之前提交的任何更改的列表(或者工作目录内容列表,如果它是一个没有提交的新repo).试试这个例子:
$ mkdir temp
$ cd temp
$ git init
$ echo "first line" > test.txt
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test.txt
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)
让我们看看test.txt的差异:
$ git diff
Run Code Online (Sandbox Code Playgroud)
这没有输出!
我希望看到一个差异,+ first line
但我什么都没得到.它没有告诉我发生了什么.stackoverflow上的人告诉我git add
一些文件,所以我这样做:
$ git add .
$ git diff
Run Code Online (Sandbox Code Playgroud)
依然没有!
Git GUI显示了这些变化.
git status -v
显示更改.
但由于某种原因git diff
没有显示任何东西.
所以我的问题是:
git diff
?我公司的一些人正在使用git,但SVN人群将指出这是git太混乱无法使用的情况.
m0t*_*ive 64
git不会将文件系统上的文件视为自动包含在版本控制系统中,您必须将内容明确地添加到git存储库中(正如您通过添加当前目录所做的那样git add .
).
没有输出,git diff
因为git 在您的存储库中看不到任何更改,只有存储库之外的文件,它认为"未跟踪",因此在生成diff时会忽略.
我发现这是与svn(以及登台和忽略目录)等vcs的关键区别之一.
如果您希望包含未跟踪的文件,则为git add
它们.
如果您不想在回购中添加它们.gitignore
(请参阅参考资料git ignore --help
).这对C对象文件或python .pyc
文件很有用.
所以这略有不同.如果这样,git status
您将看到该文件现在位于暂存区域中.这是您要提交的文件的区域.
当您git add
将新文件放入git repo时,它会跳过工作副本并直接进入暂存区域.这在某种程度上是有意义的,git add
无论是跟踪还是未跟踪,始终将文件移动到临时区域.
要查看上次签入和暂存区域之间的差异,请执行此操作git diff --cached
.
要查看暂存区域和工作副本之间的差异,请执行此操作git diff
.如果暂存区域中没有任何内容,那么这与在上次签入和工作副本之间进行差异相同.
Dan*_*aum 28
我已经看到了确实应该输出的情况,git diff
但没有;
--no-pager
在两者之间加入git
和diff
DOES工作:
git --no-pager diff
Run Code Online (Sandbox Code Playgroud)
......所以没有明确设置寻呼机是less
与
git config --global core.pager 'less'
Run Code Online (Sandbox Code Playgroud)
即使less
应该是默认的寻呼机.
这是在Ubuntu 12.04 LTS.我只是添加这个以防其他有相同问题的人来寻找解决方案,而上述内容并没有回答这个问题.
我在git docs中找到了有关寻呼机设置的信息 .
1.用简单的英语来说,git diff 是如何工作的?
如何git diff
工作完全取决于您传递给它的参数。
根据参数,git diff
将显示两次提交之间或提交与工作树之间的更改等...
例如,git diff
,git diff --staged
和git diff HEAD
在下文进一步描述。
2.如何显示我所做的所有更改(未暂存和暂存)的差异?
通过同时使用命令git diff HEAD
和git diff --staged
.
但是对于刚刚创建的存储库git init
,这个问题没有意义并且git diff HEAD
不能使用:历史是空的,没有提交,HEAD
还没有!
git diff
显示相对于上次提交的工作树中的更改,仅适用于跟踪文件
git diff HEAD
显示相对于上次提交的工作树中的更改(包括未跟踪的文件)
git diff --staged
(或其同义词git diff --cached
)显示您为下一次提交相对于上次提交所做的更改
还有许多其他方法可以调用git diff
,用于比较任意提交或分支等。调用git help diff
以了解更多信息。
归档时间: |
|
查看次数: |
28430 次 |
最近记录: |