相关疑难解决方法(0)

.gitignore被Git忽略了

我的.gitignore文件似乎被Git忽略了 - 该.gitignore文件可能已损坏吗?Git期望哪种文件格式,语言环境或文化?

我的.gitignore:

# This is a comment
debug.log
nbproject/
Run Code Online (Sandbox Code Playgroud)

输出来自git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)

我想,debug.lognbproject/不是出现在未跟踪的文件列表中.

我应该从哪里开始寻找解决方法呢?

git gitignore

1407
推荐指数
20
解决办法
72万
查看次数

为什么Git比Subversion更好?

我已经使用Subversion几年了,在使用SourceSafe之后,我只是喜欢Subversion.结合TortoiseSVN,我无法想象它会如何变得更好.

然而,越来越多的开发人员声称Subversion存在问题,我们应该转向新一代的分布式版本控制系统,例如Git.

Git如何改进Subversion?

svn git

393
推荐指数
17
解决办法
88万
查看次数

在git中压缩提交是什么意思?

Squashing在git中的含义是什么意思.我如何在Github中压缩提交?

我是Git的新手,我要求被分配到coala-analyzer中的新手bug.我修复了这个bug,现在我被要求压缩我的提交.我该怎么做?

git github

90
推荐指数
3
解决办法
4万
查看次数

Git的包文件是否是快照而不是快照?

Git与大多数其他版本控制系统之间的主要区别之一是,其他人倾向于将提交存储为一系列增量 - 一次提交与下一次提交之间的更改集.这似乎是合乎逻辑的,因为它是存储提交的最小可能信息量.但是,提交历史记录越长,比较修订范围所需的计算就越多.

相比之下,Git 在每个版本中存储了整个项目完整快照.这并没有使回购规模显着每个提交成长的原因是项目中的每个文件存储在Git的子目录中的文件,名为对其内容的哈希值.因此,如果内容未更改,则散列未更改,并且提交仅指向同一文件.还有其他优化.

所有这些对我来说都是有意义的,直到我偶然发现有关包文件的信息,Git定期将数据放入其中以节省空间:

为了节省空间,Git使用了packfile.这是一种格式,其中的Git只会保存在第二个文件已经改变,它的指针是类似文件的一部分.

这基本上不会回到存储增量吗?如果没有,它有什么不同?这如何避免Git遇到其他版本控制系统遇到的相同问题?

例如,Subversion使用增量,回滚50个版本意味着撤消50个差异,而使用Git,您可以获取适当的快照.除非git还在packfiles中存储50个差异...是否有一些机制说"在经过一些少量的增量后,我们将存储一个全新的快照",这样我们就不会堆积太大的变更集?Git还有什么可以避免增量的缺点?

git version-control internals

65
推荐指数
2
解决办法
1万
查看次数

什么是git"快照"?

官方Git文档说:

$ git diff test

这将显示当前工作目录与"test"分支上的快照之间的不同之处

作为一个新手,这是非常令人困惑的.我从来没有听说过快照一词.他们是指"测试"分支的"HEAD"吗?

git

64
推荐指数
4
解决办法
4万
查看次数

git二进制差异算法(增量存储)是否标准化?

Git使用增量压缩来存储彼此相似的对象.

此算法是否已标准化并在其他工具中使用?是否有描述格式的文档?它与xdelta/VCDIFF/RFC 3284兼容吗?

compression git binary-diff vcdiff

50
推荐指数
3
解决办法
2万
查看次数

git fsck代表什么?

fsck命令名后面的含义是什么?

命令的文档似乎没有提到名称的含义.

git git-fsck

37
推荐指数
2
解决办法
1万
查看次数

git如何存储重复文件?

我们有一个包含SVM AI输入数据和结果的Git存储库.每次运行新模型时,我们都会为该模型创建一个新的根文件夹,以便我们可以随时组织结果:

/run1.0
  /data
    ... 100 mb of data
  /classification.csv
  /results.csv
  ...
/run2.0
  /data
    ... 200 mb of data (including run1.0/data)
  /classification.csv
  /results.csv
  ...
Run Code Online (Sandbox Code Playgroud)

在我们构建新模型时,我们可能会从之前的运行中获取数据(大型.wav文件).这意味着我们的数据文件夹2.0可能包含1.0 /数据中的所有文件以及我们可能收集的其他数据.

如果我们继续这样做,回购很容易超过千兆字节.

Git是否有办法识别重复的二进制文件并仅存储一次(例如像符号链接)?如果没有,我们将重新设计数据的存储方式.

git

21
推荐指数
2
解决办法
4563
查看次数

git可以用于非文本文档的版本控制,如word doc或xls等

我最近一直在学习GIT版本控制系统,它似乎非常适用于纯文本文档,因为你可以添加一行,返回并分叉,修改文档并删除刚刚添加的行.

我主要在excel编程并用文字编写文档.可以使用GIT来管理这些文件的版本(显然不是文件中的内容,而是文件本身?)

git version-control xls doc

14
推荐指数
1
解决办法
3234
查看次数

git何时以及如何使用增量进行存储?

阅读git的文档他们强调的一件事是git存储快照而不是增量.自从我看到Git的课程说Git存储了文件版本之间的差异后,我尝试了以下内容:我在一个空文件夹上初始化了一个git存储库,创建了一个lorem.txt包含一些lorem ipsum文本的文件,该文件暂存并提交.

然后find .git/objects -type f在命令行上使用我列出了在对象文件夹上保存的git,并且按照预期找到了一个提交对象,该对象指向指向包含我保存的lorem ispum文本的blob对象的树对象.

然后我修改了lorem ipsum文本,添加了更多内容,暂存了这个更改并提交了.再次列出文件,我现在可以看到新的提交对象,指向一个新的三个对象和一个新的blob对象.使用git cat-file -p 331cf0780688c73be429fa602f9dd99f18b36793我可以看到新blob的内容.它们正是完整lorem.txt文件的内容,旧内容加上更改.

这符合文档的预期:git存储快照,而不是增量.但是,在互联网上搜索我发现了这个问题.在接受的答案中,我们看到以下内容:

虽然这在概念层面上是真实而重要的,但在存储层面却并非如此.

Git确实使用增量来存储.

不仅如此,它比其他任何系统都更有效率.因为它不保留每个文件的历史记录,所以当它想要进行增量压缩时,需要每个blob,选择一些可能相似的blob(使用包含最接近的先前版本和其他一些版本的试探法),尝试生成增量并选择最小的增量.通过这种方式,它可以(通常取决于启发式方法)利用其他类似文件或比以前更相似的旧版本."pack window"参数允许delta压缩质量的交易性能.默认值(10)通常会得到不错的结果,但是当空间有限或加速网络传输时,git gc --aggressive使用值250,这使得它运行速度非常慢,但为历史数据提供了额外的压缩.

这说Git确实使用增量进行存储.据我所知,Git不会一直使用增量,但只有在检测到它时才有必要.这是真的?

我在文件上放了很多lorem文本,所以它的大小是2mb.我认为当对一个大文本文件做一个小改动时,Git会自动使用增量,但正如我所说的那样.

当Git使用deltas以及它是如何工作的?

git

13
推荐指数
2
解决办法
1779
查看次数