在GitHub存储库中,您可以看到"语言统计信息",它显示用一种语言编写的项目的百分比.但是,它不会显示项目包含的代码行数.通常,我希望能够快速了解项目的规模和复杂性,并且代码行数可以给人留下良好的第一印象.500行代码意味着一个相对简单的项目,100,000行代码意味着一个非常大/复杂的项目.
那么,是否有可能从GitHub存储库中获取用各种语言编写的代码行,最好不要克隆它?
问题" 计算git存储库中的行数"询问如何计算本地Git存储库中的代码行,但是:
总而言之,这对于"快速检查项目规模"来说可能太耗费时间.
Git有一个众所周知的,或者至少是众所周知的空树,其SHA1是:
4b825dc642cb6eb9a060e54bf8d69288fbee4904
Run Code Online (Sandbox Code Playgroud)
(你可以在任何仓库中看到这个,甚至是新创建的仓库,用git cat-file -t
和git cat-file -p
).
如果您努力工作并且非常小心,您可以使用这个空树来存储没有文件的目录(请参阅如何将空目录添加到git存储库的答案),尽管这不是一个好主意.
它作为一个参数更有用git diff-tree
,其中一个示例钩子可以做到.
我想知道的是,
4b825dc642cb6eb9a060e54bf8d69288fbee4904
? (创建符号名称的快速而肮脏的方法是将SHA1放入,例如,.git/Nulltree
不幸的是,您必须为每个repo执行此操作.似乎更好地将幻数放在脚本中等等.我只是有一般的厌恶到魔术数字.)
这种情况:
我们基于现有的开源git repo(例如source-repo)创建了一个“私有” repo(例如our-repo)。
我们一直在开发代码,并已将大约20个合并到我们的仓库中。因此,仓库从“ State_Initial”移到“ State_Current”。
现在,出于业务原因,我们希望将所有开发工作移交给第三方。基于某些法律问题,唯一的选择是我们为他们提供所有更改的“单个”补丁文件。那是“ State_Initial”和“ State_Current”之间的压缩补丁。
我环顾四周,发现
git format-patch -X
Run Code Online (Sandbox Code Playgroud)
但是,它会生成“ n”个.patch文件。
有没有一种创建单个补丁文件的方法,以便如果我们基于“ source-repo”创建一个仓库并应用该补丁,它将带我们进入“ State_Current”?
我通常通过“git diff commit^!”来检查提交的内容。但是,当我将其应用于初始提交时,我随后看到了来自不同提交的更改的混合,而我认为它应该是提交的初始副本。有人可以帮助我从语义上理解它吗?
顺便说一句,我知道如何显示stackoverflow 问题 40883798中 init 提交的差异有很好的答案。