“突然之间”我已经开始使用我在GitHub上托管的git存储库来解决这个问题。
每当我将一个远程分支拉到我的计算机上时(甚至在存储库的第一个克隆上),任意(?)文件集都会显示为“未提交的更改”。我在Windows 8.1上运行并使用SourceTree和Git Bash一起作为git客户端。
检查这些文件中的更改表明它们中没有任何变化,除了行结尾。我不知道如何在差异时查看行结尾,所以无法确定。
当我尝试“丢弃”这些更改时,它根本不起作用。 df$added <- unlist(lapply(split(df, df$group), function(x) {
c(x[,'occurs'][cumsum(x[,'occurs']) == 0L],
cumsum(x[,'numToAdd'][cumsum(x[,'occurs']) != 0L]))
}))
# group numToAdd occurs added
# 1 1 1 0 0
# 2 1 1 0 0
# 3 1 3 1 3
# 4 1 2 0 5
# 5 2 4 0 0
# 6 2 2 1 2
# 7 2 1 0 3
# 8 2 3 0 6
# 9 2 2 0 8
# 10 3 1 0 0
# 11 3 2 1 2
# 12 3 1 1 3
# 13 4 2 0 0
# 14 4 3 0 0
# 15 4 2 0 0
根本无效,更改仍然存在。
为什么会这样?我怎么能让它消失? :)
PS - 当我运行git reset --hard
时,我看到git config -l
在列表中出现了3次。
PPS - 我在存储库的根目录中有一个core.autocrlf=true
文件。删除它对上述症状没有任何影响。它是几天前首次添加的。除了文件开头的.gitattributes
之外,它都被注释掉了。
更新:
我找到了重现问题的最低步骤:
请注意,在我编辑之前和编辑之后,此示例中的文件具有CRLF行结尾 - 我不明白为什么git坚持将文件标记为已更改。
更新2:
运行* text=auto
,其中MyProject.app / config是标记为已更改的文件之一:
git diff --raw MyProject/app.config
第二个SHA1全为零的事实看起来像是我的线索 - 但我不知道这意味着什么。
答案 0 :(得分:1)
在事后设置core.autocrlf时,这是一个常见问题。您可以从GitHub帮助中尝试this procedure。另一个简单的解决方案是只删除存储库的新本地副本,如果您仍然遇到问题,这也是一个很好的故障排除步骤。
答案 1 :(得分:1)
更新3 :我能够通过从存储库的根目录中删除.gitattributes文件来解决我的问题。
首先将此文件添加到repo中的最可能的疑问是Visual Studio 2013是this Microsoft Connect issue。
我仍然不明白为什么有这个文件(其中包含core.autocrlf=true
)会导致我观察到的行为。如果有人有一个很好的解释,请将其作为答案发布,我会接受它。
答案 2 :(得分:1)
关于dealing with line endings上的github文章,您可以看到在.gitattributes文件上设置text = auto告诉git以&#34;以其认为最好的方式处理文件。&#34;看到文件的其余部分已被注释,并且您在text = auto上有一个星标,这适用于所有内容。我认为,在你的情况下,git认为最好的,结果是错误的选择。