Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse git-重复父级_Eclipse_Git_Egit - Fatal编程技术网

Eclipse git-重复父级

Eclipse git-重复父级,eclipse,git,egit,Eclipse,Git,Egit,我似乎已经通过使用eGit(Eclipse的git客户端,由JGit提供支持)成功地实现了对两个重复父级的提交 第二个家长导致了我们无法摆脱的绿色“无处可去” 我一直在谷歌上搜索一些方法,在承诺移除额外的父母时进行一些手术, 但是没有用 运行我得到的cat文件: $ git cat-file -p 26dc6a5b44373f766d81513ab84c5eecaf876736 tree 527df208ee66f52bc414948b1de0fa6607cfb81c parent bc9d

我似乎已经通过使用eGit(Eclipse的git客户端,由JGit提供支持)成功地实现了对两个重复父级的提交

第二个家长导致了我们无法摆脱的绿色“无处可去”

我一直在谷歌上搜索一些方法,在承诺移除额外的父母时进行一些手术, 但是没有用

运行我得到的cat文件:

$ git cat-file -p 26dc6a5b44373f766d81513ab84c5eecaf876736

tree 527df208ee66f52bc414948b1de0fa6607cfb81c
parent bc9d55d0451b325b4ad5a758be8b30c1418b3af9
parent bc9d55d0451b325b4ad5a758be8b30c1418b3af9
author Roy Truelove <roy.truelove@xxxx.com> 1316457571 -0400
committer Roy Truelove <roy.truelove@xxxx.com> 1316457571 -0400
$git cat文件-p 26dc6a5b44373f766d81513ab84c5eecaf876736
树527df208ee66f52bc414948b1de0fa6607cfb81c
母bc9d55d0451b325b4ad5a758be8b30c1418b3af9
母bc9d55d0451b325b4ad5a758be8b30c1418b3af9
作者罗伊·特鲁洛夫1316457571-0400
提交人Roy Truelove 1316457571-0400
我正在分享这个回购协议,这个问题已经被推了出来,我相信这会增加解决方案的复杂性

感谢git黑客, 罗伊


PS-如果我需要执行通过eGit不可用的功能,以便从提交中删除重复的父项,我确实可以使用此存储库(cygwin)的命令行访问权限。您可以执行以下操作:

git replace <sha1> $(git cat-file commit <sha1> | uniq | git hash-object -t commit -w --stdin)
git replace$(git cat file commit | uniq | git hash object-t commit-w--stdin)
具有重复父级的提交已临时替换为不包含重复父级的新提交。您可以检查gitk显示问题现在是否已经解决


为了永久替换提交,可以使用git过滤器分支。请注意,此时您将重写历史。所有参与此项目的开发人员都必须了解这一点,以便他们也可以将本地工作/副本重新设置为新的历史记录。

您可以使用
git filter branch
重写历史记录;重复的父项将被自动更正。

您确定eGit中没有错误吗?可能是,但即使它是eGit中的错误,也可能是回购协议本身的某个古怪状态被eGit表现得很糟糕。如果我能修复这个奇怪的状态,它应该可以解决这个问题。git cat file-p对提交说什么?drizzd-谢谢-我在问题中添加了cat file的输出,你知道有问题的提交是使用EGit/JGit还是使用命令行git进行的吗?谢谢drizzd-我在存储库的副本上运行了该命令-它创建了一个替换(git cat file-p只有一个父级),但是当我在eGit中加载存储库时,它仍然显示两个父级。也许eGit不支持替换提交。。(?)是的,eGit可能不支持它。事实上,我甚至没有意识到你的问题是eGit而不是gitk。无论哪种方式,经过过滤器分支后,问题都应该消失。根据Josh的回答,filter branch将自动修复此特定问题,即使您没有创建替换提交。