相关疑难解决方法(0)

Git如何处理blob上的SHA-1冲突?

这可能永远不会发生在现实世界中,并且可能永远不会发生,但让我们考虑一下:假设您有一个git存储库,进行提交,并且变得非常不幸:其中一个blob最终拥有相同的SHA-1另一个已存在于您的存储库中.问题是,Git将如何处理这个?简直失败了?找到一种方法来链接两个blob并根据上下文检查哪一个需要?

更多的是脑筋急转弯而非实际问题,但我发现这个问题很有趣.

git hash-collision

527
推荐指数
6
解决办法
7万
查看次数

为什么Git不使用更现代的SHA?

我读到Git使用SHA-1摘要作为修订版的ID.为什么不使用更现代的SHA版本?

git cryptography sha

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

为什么Git使用SHA-1作为版本号?

Git使用SHA-1为用户引用提交.

Subversion(SVN)和Mercurial(hg)使用增量数字.

为什么Git团队做出使用SHA-1而不是更具描述性的设计决定?

git

38
推荐指数
2
解决办法
5544
查看次数

将代码保存在gitlab和github中是危险的

将代码保存在gitlab和github中是危险的吗?

我听说将代码提交给gitlab和github是相当安全的.

原因是每个代码都经过哈希处理,并且每个人都不可能在不使用git工具的情况下更改代码.

这是真的?

git github gitlab

20
推荐指数
1
解决办法
8069
查看次数

为什么我必须在更改提交消息后强制推送?

我读到有关如何修改提交消息的内容.接受的答案是:

如果您已经将提交推送到远程分支,那么您需要强制推送提交git push <remote> <branch> --force.

这是我的理解(也来自已接受的答案)git push --force将覆盖远程分支上的所有数据与本地数据.

为什么在更改提交消息后强制推送是必要的?如果我修改提交消息并试图在没有-f或者推送的情况下会发生什么--force

git push git-push

7
推荐指数
1
解决办法
4059
查看次数

Git 哈希输出与 sha1sum 不匹配,为什么?

我看过这篇文章,它提到 Git 对我正在使用的版本使用 SHA-1 哈希。然而,当我将 的输出git hash-object与熟悉的进行比较时sha1sum,我得到了不同的结果。例如:

$ git --version
git version 2.17.1
$ git hash-object data/letter.txt
2e65efe2a145dda7ee51d1741299f848e5bf752e
$ sha1sum data/letter.txt
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8  data/letter.txt
Run Code Online (Sandbox Code Playgroud)

我正在关注这个帖子。该文件letter.txt包含一个字母“a”。

为什么这些命令会产生不同的结果?

git bash sha git-bash

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

git commit hash是否值得信任?

当在github上使用来自未知第三方的代码时,我总是确保检查代码中没有可能危及系统安全性的明显后门存在.

我正在审查的存储库的特定状态可能绑定到git标记和提交哈希.众所周知,git标签的内容很容易改变.因此,再次下载源代码并基于版本标记信任它绝对不安全.

我的问题是:在下载新的源代码下载时,我是否可以相信,如果我根据它的完整提交哈希签出特定提交,那么这与我之前审查过的代码完全相同?

这个问题的焦点不在于完全发生sha1碰撞的可能性(因为碰撞比计算特定的sha1散列更容易计算 - 有希望 - 目前几乎不可能?),但是是否每个每个文件都是此sha1 sum的一部分,因此更改将始终触发不同的哈希.

git git-hash

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

标签 统计

git ×7

sha ×2

bash ×1

cryptography ×1

git-bash ×1

git-hash ×1

git-push ×1

github ×1

gitlab ×1

hash-collision ×1

push ×1