草庐IT

git - 为什么 Git 使用*压缩*对象的 SHA1 而不是原始对象的 SHA1?

我很好奇为什么做出这个选择-它基本上排除了更改Git使用的压缩算法-因为它不使用原始blob的SHA1。也许这里有一些效率方面的考虑。也许ZLIB在压缩文件方面比SHA1算法在创建哈希时更快,因此在哈希之前压缩更快?这是Linus的原始Git自述文件的链接:root/README这是相关段落:"Thereareseveralkindsofobjectsinthecontent-addressablecollectiondatabase.Theyareallindeflatedwithzlib,andstartoffwithatagoftheirtype,andsizeinformati

git - 如何查找 git SHA 是否指向分支 HEAD?

为了避免在使用(python)脚本checkout某个gitSHA时不必要地分离HEAD,我想checkout一个分支,如果该SHA恰好是分支的当前HEAD。理想情况下,我想为git提供一个SHA,如果SHA在分支的当前提示上,它会返回一个分支名称,否则会出错。gitdescribe--all--exact-match几乎是我所需要的,只是它主要针对标签,所以如果一个分支和一个标签指向我的SHA(这经常发生在我们的发布分支中,例如),只给出了标签。这没有用,因为checkout标签会导致分离的HEAD(即使分支指向相同的SHA)。注意,我不想做gitbranch--contains-我

git - 如何查找 git SHA 是否指向分支 HEAD?

为了避免在使用(python)脚本checkout某个gitSHA时不必要地分离HEAD,我想checkout一个分支,如果该SHA恰好是分支的当前HEAD。理想情况下,我想为git提供一个SHA,如果SHA在分支的当前提示上,它会返回一个分支名称,否则会出错。gitdescribe--all--exact-match几乎是我所需要的,只是它主要针对标签,所以如果一个分支和一个标签指向我的SHA(这经常发生在我们的发布分支中,例如),只给出了标签。这没有用,因为checkout标签会导致分离的HEAD(即使分支指向相同的SHA)。注意,我不想做gitbranch--contains-我

git - 如何根据 SHA1 代码识别 Git 对象类型?

给定对象的SHA1代码,如何识别对象类型(blob、树、标记或提交)? 最佳答案 你可以使用gitcat-file-t,例如:$gitcat-file-tffcb14ca1dadcommit$gitcat-file-t74e34003ablobgitcat-file的使用在itsdocumentation中有解释。. 关于git-如何根据SHA1代码识别Git对象类型?,我们在StackOverflow上找到一个类似的问题: https://stackover

git - 如何根据 SHA1 代码识别 Git 对象类型?

给定对象的SHA1代码,如何识别对象类型(blob、树、标记或提交)? 最佳答案 你可以使用gitcat-file-t,例如:$gitcat-file-tffcb14ca1dadcommit$gitcat-file-t74e34003ablobgitcat-file的使用在itsdocumentation中有解释。. 关于git-如何根据SHA1代码识别Git对象类型?,我们在StackOverflow上找到一个类似的问题: https://stackover

Git 子模块 : specify a specific SHA?

我在我的项目中引用了一个git子模块,现在需要在目标git存储库中引用一个特定的SHA。#.gitmodules[submodule"vendor/plugins/ssl_requirement"]path=vendor/plugins/ssl_requirementurl=git://github.com/retr0h/ssl_requirement.git我想要的SHA是bc96ad96407a72a60e0542cf3b0cecc6ff9e278e。 最佳答案 根据定义,子模块始终引用子项目中的特定SHA1。SHA1不在.gi

Git 子模块 : specify a specific SHA?

我在我的项目中引用了一个git子模块,现在需要在目标git存储库中引用一个特定的SHA。#.gitmodules[submodule"vendor/plugins/ssl_requirement"]path=vendor/plugins/ssl_requirementurl=git://github.com/retr0h/ssl_requirement.git我想要的SHA是bc96ad96407a72a60e0542cf3b0cecc6ff9e278e。 最佳答案 根据定义,子模块始终引用子项目中的特定SHA1。SHA1不在.gi

git - 如果两个 Git 提交具有相同的 SHA-1 哈希会发生什么?

让我先声明一下,我知道发生这种情况的可能性极小。我知道制造或多或少是不可能的,而且极不太可能“在野外”发生。这只是一个关于Git内部结构的假设问题。那么,这是我的问题:如果两个Git提交哈希值相同会发生什么?对于初学者:提交会成功吗?以后是否可以将其作为分离的头进行检查?是否可以进行后续提交? 最佳答案 我的旧答案“HowwouldgithandleaSHA-1collisiononablob?”仍然适用,即使是提交而不是blob。作为torek提及inthecomments,git只是将所有事物都视为“对象”,每个对象都有自己的S

git - 如果两个 Git 提交具有相同的 SHA-1 哈希会发生什么?

让我先声明一下,我知道发生这种情况的可能性极小。我知道制造或多或少是不可能的,而且极不太可能“在野外”发生。这只是一个关于Git内部结构的假设问题。那么,这是我的问题:如果两个Git提交哈希值相同会发生什么?对于初学者:提交会成功吗?以后是否可以将其作为分离的头进行检查?是否可以进行后续提交? 最佳答案 我的旧答案“HowwouldgithandleaSHA-1collisiononablob?”仍然适用,即使是提交而不是blob。作为torek提及inthecomments,git只是将所有事物都视为“对象”,每个对象都有自己的S

Git over samba - 无法写入 sha1 文件名 |没有权限

当我在Windows上通过samba共享使用git时,当我想通过git_extentions或tortoiseGIT提交文件时出现错误。错误是:错误:无法写入sha1文件名.git/objects/b4/e819f886bf31b67c42249a0eff8e8b16cf7622:权限被拒绝。当我通过ubuntu服务器添加文件并提交文件时,它工作正常。我也在banrch工作。我已经尝试过chmod777整个.git文件夹。 最佳答案 我也看到了。这是一个git缺陷,可能与其创建和修改文件的方式有关。澄清问题:#mountasamba