我在索引中添加了一个文件: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.
所以gittag命令列出了当前的git标签tag1tag2gittag-n打印标签的信息tag1blahblahtag2blahblah获取tag1和tag2的哈希值的最佳方法是什么? 最佳答案 要使用Tag对象的SHA1哈希获取git标签,您可以运行:gitshow-ref--tags输出将类似于:0e76920bea4381cfc676825f3143fdd5fcf8c21frefs/tags/1.0.05ce9639ead3a54bd1cc062963804e5bcfcfe1e83refs/tags/1.1.0591eceaf
我想下载一个.zip文件,其中包含托管在github上的库的源代码,但我不想要master,因为每次下载我都可能下载不同的版本。这个特定的库没有标签,所以我不能使用它。那么如何下载特定提交sha的source.zip? 最佳答案 你可以把你想要的sha放在下载地址中:https://github.com/{username}/{projectname}/archive/{sha}.zip作为一般规则,如果您有一个可用的url,您可以将“master”替换为您想要的特定sha。在Unix上:wgethttps://github.com