git diff在.gitignore中但已添加用于跟踪的文件上

时间:2015-05-08 15:13:07

标签: git

对于文件

  

配置/ config.py

该文件位于.gitignore中我需要进行更改才能添加到我自己的克隆中。但是,不希望更改.gitignore本身:我们希望大多数用户不要看到此文件。

所以我做了

## Function to create alpha colors for illustration.
col2alpha <- function(col, alpha = 0.5) {
  tmp <- col2rgb(col)
  rgb(tmp[1]/255, tmp[2]/255, tmp[3]/255, alpha)  
}

## Some fake data
dat1 <- data.frame(id = 1:4, val = c(10, 8, 6, 4))
dat2 <- data.frame(id = 1:4, val = c(4, 6, 8, 10))

barplot(dat1$val, col = col2alpha("blue"))
barplot(dat2$val, col = col2alpha("red"), add = TRUE)

然而

git add -f config/config.py

什么都没有。

更正我在原始版本中声明了

git diff config/config.py

没有显示任何内容:它确实显示

git status

所以看起来只有 git diff 命令才能出人意料?

(偏离主题:一般来说整个.gitignore / tracked vs untracked是一个令人惊讶的棘手/痛苦的过程。我已经看了很多关于这个主题的SOF,他们在这里没有信心。)

1 个答案:

答案 0 :(得分:1)

git diff显示了暂存区域(又名索引)和工作树之间的区别。您刚刚将文件添加到临时区域,因此git diff完全没有显示任何内容是完全正常的。你想运行

git diff HEAD

代替。这将显示文件与HEAD之间的差异,这意味着&#34;最后一次提交&#34;。如果HEAD中没有该文件,则差异将显示整个文件。

您似乎已经运行了git rm --cached并且之前进行了提交,因此HEAD中的文件不存在。你之前犯了一个错误,如果你不明白你在做什么,试图修复这个错误会更危险。如果您想尝试,请了解如何在Git中重写历史记录。

如果您想在历史记录中查看过去提交的差异,请运行

git diff <commit-id>

这与文件位于.gitignore

的事实完全无关