相关疑难解决方法(0)

你能从GitHub存储库中获得代码行数吗?

在GitHub存储库中,您可以看到"语言统计信息",它显示用一种语言编写的项目的百分比.但是,它不会显示项目包含的代码行数.通常,我希望能够快速了解​​项目的规模和复杂性,并且代码行数可以给人留下良好的第一印象.500行代码意味着一个相对简单的项目,100,000行代码意味着一个非常大/复杂的项目.

那么,是否有可能从GitHub存储库中获取用各种语言编写的代码行,最好不要克隆它?


问题" 计算git存储库中的行数"询问如何计算本地Git存储库中的代码行,但是:

  1. 你必须克隆项目,这可能是巨大的.例如,克隆像Wine这样的项目需要很长时间.
  2. 您可以计算文件中不一定是代码的行,例如i13n文件.
  3. 如果你计算(例如)Ruby文件,你可能会错过其他语言的大量代码,比如JavaScript.您必须事先知道项目使用的语言.您还必须重复项目使用的每种语言的计数.

总而言之,这对于"快速检查项目规模"来说可能太耗费时间.

git github line-count

360
推荐指数
18
解决办法
23万
查看次数

git的半秘密空树对象是否可靠,为什么没有符号名称呢?

Git有一个众所周知的,或者至少是众所周知的空树,其SHA1是:

4b825dc642cb6eb9a060e54bf8d69288fbee4904
Run Code Online (Sandbox Code Playgroud)

(你可以在任何仓库中看到这个,甚至是新创建的仓库,用git cat-file -tgit cat-file -p).

如果您努力工作并且非常小心,您可以使用这个空树来存储没有文件的目录(请参阅如何将空目录添加到git存储库的答案),尽管这不是一个好主意.

它作为一个参数更有用git diff-tree,其中一个示例钩子可以做到.

我想知道的是,

  1. 这有多可靠 - 即,某些未来版本的git没有编号的git对象4b825dc642cb6eb9a060e54bf8d69288fbee4904
  2. 为什么空树没有符号名称(或者有一个?).

(创建符号名称的快速而肮脏的方法是将SHA1放入,例如,.git/Nulltree不幸的是,您必须为每个repo执行此操作.似乎更好地将幻数放在脚本中等等.我只是有一般的厌恶到魔术数字.)

git

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

git:跨多个提交生成单个补丁

这种情况:

  1. 我们基于现有的开源git repo(例如source-repo)创建了一个“私有” repo(例如our-repo)。

  2. 我们一直在开发代码,并已将大约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 patch

7
推荐指数
3
解决办法
2320
查看次数

按上次修改日期的顺序列出文件

我的回购已经过期清理了.我认为一个好的起点是按照上次触摸的顺序列出所有文件,并从最旧的文件开始.有没有办法实现这个目标?

git

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

什么是 git diff <first_commit>^<感叹号>?

我通常通过“git diff commit^!”来检查提交的内容。但是,当我将其应用于初始提交时,我随后看到了来自不同提交的更改的混合,而我认为它应该是提交的初始副本。有人可以帮助我从语义上理解它吗?

顺便说一句,我知道如何显示stackoverflow 问题 40883798中 init 提交的差异有很好的答案。

git git-diff git-filter-branch

3
推荐指数
1
解决办法
1005
查看次数

标签 统计

git ×5

git-diff ×1

git-filter-branch ×1

github ×1

line-count ×1

patch ×1