草庐IT

git - 有人熟悉 git 错误 "missing object 0000000000000000000000000000000000000000 for refs/heads/..."吗?

我们正在运行gitv1.7.1并配置了gitweb。我们也使用gitolite进行管理,但我认为这与这个问题无关。我们有时会在Apache日志中收到如下错误:missingobject0000000000000000000000000000000000000000forrefs/heads/...末尾的省略号通常是分支名称。我相信零字符串被支持为SHA1值。显然,全零不是SHA1值。我不清楚这个值是从哪里来的?我在服务器上运行了gitfsck,它没有报告问题,但是gitgc解决了这个问题。此外,我们能够很好地pull和推送到这个存储库(和那个分支)。只有gitweb似乎受到影响。我知道

macos - 致命的 : could not parse HEAD Error When Committing

每当我尝试提交我的工作时,我都会收到此错误。fatal:couldnotparseHEAD如果我想保留我的更改,我应该怎么做? 最佳答案 你知道HEAD应该指向哪个分支吗?是master吗?运行gitsymbolic-refHEADrefs/heads/master。基本上,名称为HEAD的符号引用不知何故被破坏了。您(或您运行的软件)一定已经在.git目录中搜索过了。如果我是你,我会检查以确保你的repo协议(protocol)中没有其他东西被损坏。您可以通过运行gitfsck来验证您的对象数据库。

git - 我怎样才能摆脱 "Lost heads"?

在我第一次尝试使用git做一些事情时,我使用了GitHubforWindows。因为它是简单且相当原始的工具,所以我决定尝试SmartGit。当我环顾四周时,我发现我的测试有剩菜——一种叫做“丢头”的东西。我怎样才能摆脱这些垃圾?好像是gitgc--prune=now或类似的东西应该可以工作,但没有任何改变。我尝试谷歌搜索,但每个人都在尝试做相反的事情——从丢失的头或类似的东西中恢复丢失的提交。 最佳答案 根据manpage,gitgc不会垃圾收集通过“reflogs”引用的文件(您存储库中的.git/logs/文件)。这些HEAD

git - hg heads/hg parents 的 git 等价物是什么?

在hg中,我可以使用hgheads查看所有当前的头像。我仍然无法在git中找到等效项。git-hgrosettastone没有给出答案。至于hgparents,它在hg中简单地告诉节点的直接祖先,rosettastone简单地读取非常无用:gitlog#youcanreadalltheinformationyouneedfromthere(aslongasyoualreadyknowtheanswertothequestionyou'reasking) 最佳答案 gitrev-listHEAD,gitrev-list和gitrev-

git rebase -i HEAD~7 -- 在编辑器中只显示 "noop"

我正在尝试将位于HEAD的提交压缩为后面的提交。当我运行gitrebase-iHEAD~7,然而,我只看到一个noop在编辑器中!我对这应该如何工作完全感到困惑。我在我创建的分支(cleanup)中工作(在我在checkout-bcleanup...中找到的SHA1上使用reflog)在我拥有第一个rebase之后经验,我不小心删除了所有这些提交;重点是,我不确定分支的父级是什么(如果重要的话,在这里)。我只是想做我多次阅读的内容:我想稍微修改一些不是最近提交的提交代码。我不知道这是申请“压缩”还是只是修改,我不知道。当编辑器在运行上面显示的rebase命令后启动时,我也在STDOUT

git - 我如何修复在 git 中 check out HEAD^

好吧,我对我的项目进行了一些更改,导致一团糟。我已经提交了更改,所以我可以稍后返回它,然后使用gitcheckoutHEAD^来检查之前的提交。现在,当我提交我的项目时,它在命令行上将SHA-1显示为工作分支(而不是主分支)我不知道关于git的所有知识,但我猜HEAD仍然指向我损坏的副本,因为我正在切线并解决了问题。如何将HEAD指向我正在处理的最新提交?我猜这与rebase有关,但我不是100%确定。谢谢。 最佳答案 现在,当我提交我的项目时,它在命令行上将SHA-1显示为工作分支(而不是主分支)这可能意味着您有一个“分离的HEA

git - 恢复 - git reset --hard HEAD^

不幸的是,我做了几次gitreset--hardHEAD^,在几个文件中丢失了相当大的代码块。有没有办法恢复这些提交,或者在这种情况下转发到HEAD之前所在的位置,这样我就可以调出我丢失的那些行? 最佳答案 使用reflog恢复以前的HEAD的sha1。特别是文章reflog,yoursafetynet将与您特别相关。来自那篇文章:Themostcommonusageofthiscommandisthatyou’vejustdoneagitresetandmovedyourHEADbackafewcommits.Butoops,yo

git - 将 master head 移动到分支机构

我有几个功能分支和一个主分支。功能2已完成。通常我会rebase(使用远程SVN存储库并希望保留历史记录,因此没有定期merge)和ff-merge。但是因为我分支后master没有改变,我想把master头(在E)移动到G。使用gitbranch-fmasterG不会导致任何可见的更改,我认为这是因为G在不同的分支上。在这里使用gitupdate-ref-fmasterG安全吗?我应该坚持使用rebase/ff-merge吗?更好的东西?feature1C-D/masterA-B-E\feature2F-G谢谢。 最佳答案 您不必

svn - HEAD 和 SVN Master 之间的 Git 差异

我想在本地提交的更改和SVN提交的最后一次更改之间进行比较。即HEAD和SVN主干上的内容。什么是合适的命令?干杯 最佳答案 我假设你在谈论git-svn:$git-svnfetch#getthelatestfromsvn,withoutmergingyet$gitdiff..remotes/git-svn#or..remotes/git-svn我不知道remotes/git-svn是否可以在其他地方。使用gitbranch-a检查。 关于svn-HEAD和SVNMaster之间的Git

git - 如何正确执行 git merge/pull : You have not concluded your merge (MERGE_HEAD exists)

我是Git的新手,不太了解如何使用Git。我一直在使用CVS,因此经历了一些Git的学习曲线。这是我所有的尝试现在我只更改了两个文件PromoServiceImpl.java和build.sql。但是,merge从“产品”分支更改时遇到麻烦。您看到的剩余文件(如ApiServiceImpl.java等)是其他用户所做的更改,但我不确定此处的表示是否表明我已更改它们。可能它在早期的pull命令中被merge了,现在它希望我提交它们??无论我遵循什么命令流程(即使经过一些Google搜索)我都会看到以下错误:Youhavenotconcludedyourmerge(MERGE_HEADex