我正在尝试使用gitam-3“补丁路径”将一系列补丁从一个git存储库应用到另一个git存储库。我按顺序应用它们,从补丁1-4开始,效果很好。但是当我来到第5个补丁时,我收到错误提示“fatal:sha1informationislackedoruseless”。我转到应用补丁的git存储库,我确实看到了文件“dev/afile”。所以我想知道为什么git会提示“缺少或无用的sha1信息(dev/afile.c)”,我该如何解决我的问题?$gitam-3~/Tmp/mypatches/0005-fifth.patchApplying:rpmsg:Allowdevicestousecus
最近,一组研究人员生成了两个具有相同SHA-1哈希(https://shattered.it/)的文件。由于Git将此哈希用于其内部存储,这种攻击对Git的影响有多大? 最佳答案 编辑,2017年12月下旬:Gitversion2.16isgraduallyacquiringinternalinterfacestoallowfordifferenthashes.还有很长的路要走。简短(但不令人满意)的回答是示例文件对Git来说不是问题——但两个其他(经过仔细计算)文件可能是。我下载了这两个文件,shattered-1.pdf和sha
我在索引中添加了一个文件:gitaddsomefile.txt然后我得到了这个文件的SHA1:githash-objectsomefile.txt我现在有一个SHA1,我想使用SHA1检索索引中对象的文件名。gitshow5a5bf28dcd7944991944cc5076c7525439830122此命令返回文件内容但不返回文件名。如何从SHA1返回完整的文件名和路径? 最佳答案 在git中没有这样的直接映射,因为文件名是包含该文件的树对象的一部分,而不是作为文件内容的blob对象的一部分。想要从SHA1哈希中检索文件名不是一种常
Git使用SHA-1供用户引用提交。Subversion(SVN)和Mercurial(hg)使用递增数字。为什么Git团队做出使用SHA-1而不是更具描述性的东西的设计决策? 最佳答案 Mercurial(hg)也使用SHA1哈希。它还试图从提交历史中获取修订号。但是,这些修订仅在一个存储库中有效。如果您观看另一个repo协议(protocol),这些修订不保证匹配。至于为什么git和mercurial使用哈希:两者都有非线性的提交历史。因为两者都是分布式的,人们可以在本地存储库中基于相同的代码工作,而无需同步到中央机构(如SVN
我对JoshStone'sanalysisofsha1abbreviationcollisions很感兴趣.假设有人写下了一个缩写的提交ID,8b82547e33,当时它是明确的。但是从那以后,其他对象已经用相同的前缀创建,所以现在git告诉你(出于某种原因两次):$gitshow8b82547e33error:shortSHA18b82547e33isambiguous.error:shortSHA18b82547e33isambiguous.fatal:ambiguousargument'8b82547e33':unknownrevisionorpathnotintheworkin
我想在获取的Remote上挑选一个提交,同时保留它的原始SHA提交代码(我当前的分支基于我重置到以前状态的这个Remote)。 最佳答案 一个gitSHA哈希是从不同的信息片段计算出来的:它所指的树;基本上,提交出现的分支中存储库的当前内容。父提交的SHA。提交消息。作者信息:姓名、电子邮件和时间戳。提交者信息:姓名、电子邮件和时间戳。即使你编辑一个精心挑选的提交,使树、提交消息、作者和提交者信息完全相同,父提交(或提交,如果处理merge提交)的SHA将始终不同的。因此,您将无法在精选之后生成相同的SHA哈希(除非您发现SHA冲突
上下文:我从code.google下载了afile(Audirvana0.7.1.zip)到我的MacbookPro(MacOSX10.6.6)。我想验证校验和,该特定文件的校验和发布为862456662a11e2f386ff0b24fdabcb4f6c1c446a(SHA-1)。githash-object给了我一个不同的哈希值,但是opensslsha1返回了预期的862456662a11e2f386ff0b24fdabcb4f6c1c446a。以下实验似乎排除了任何可能的下载损坏或换行差异,并表明实际上有两种不同的算法在起作用:$echoA>foo.txt$catfoo.txtA
我发现自己在从另一个分支中挑选提交时经常这样做。$gitlog-1another_branchcommit//copy$gitcherry-pick我可以在一个命令中完成所有这些吗?如果可以,它是什么? 最佳答案 只需使用:$gitcherry-pickanother_branch这将从another_branch中挑选最后一次提交。git中的分支只是对该分支中最后一次提交的引用,您可以在命令中使用它们而不是提交SHA。 关于git-如何使用1个命令从Git的另一个分支中挑选最后一个sh
有谁知道如何从git存储库外部获取给定分支的最新SHA?如果您在git存储库中,您可以:gitlogorigin/branch_X|head-1但是,我不在git存储库中,我想避免为了获取标签/分支的最新SHA而必须克隆存储库。有没有聪明的方法来做到这一点? 最佳答案 使用rev-parsegitrev-parseorigin/master#togetthelatestcommitontheremotegitrev-parseHEAD#togetthelatestcommitonthelocal
我在提交日志中搜索了一个感兴趣的主题:$gitlog--pretty=oneline|grep-i...$SHA1我现在有一个SHA1,我想知道有关影响该SHA1的文件的信息,并可能稍后将它们与它们的父级diff.我怎样才能完成这个? 最佳答案 gitshow将显示从父提交更改的文件的提交日期、作者、父级和差异。 关于git-获取有关SHA-1提交对象的信息?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.