2016-07-27 80 views
0

最近,试图学习一些分支合并我结束了拧我的主分支。 我的主分支代码现在包含合并冲突消息,如: “>>>>>> HEAD ==========”遍及它。 当我尝试将它与没有这些消息的实际代码合并(我在另一个分支中有一个干净的代码)时,git说一切都是最新的,没有什么可以改变的。 每当我从我的回购拉,代码包含这些垃圾回收线。垃圾代码Git主分支

我该如何解决? 在此先感谢...

+0

修复垃圾邮件行,提交并推送到远程 – Martin

+0

修复垃圾邮件行将导致干净的代码。只需提交干净的文件,然后推送它就可以完成这项工作了? –

+0

您可以将主分支重置为非垃圾代码,然后再次合并该分支,并在修复冲突后提交。 http://stackoverflow.com/questions/4114095/how-to-revert-git-repository-to-a-previous-commit – sunitj

回答

0

首先要做的事情......当你有这种“垃圾代码“你的分支有冲突。这是由于您在同一行上发生的更改造成的......要解决此问题,您必须手动解决所有冲突。这些行说明你的分支“头”是什么,你的主分支是什么,例如“MASTER”。

>>>>>>HEAD 
Your code 
========== 
========== 
Some change on the same line 
<<<<<<Master 

如果此代码仍然在你的文件,并没有改变由git的状态命令的报道,你已经推行了这一文件有冲突的,以你的分支...

只是删除那些行,并承诺和推再次...

也许您需要查看文件历史记录以查看推送的正确代码。

0

我假设你只是在本地工作,并没有将你的修改推送到一些远程。

找出哪一个是最后一个干净的提交(紧接着用这些提交进行提交之前);我们称之为a876578523。然后,

git checkout a876578523 
git branch -f master a876578523 
git checkout master 

的命令只是让你master分支(这只不过是一个“便条”反正)指向旧的,良好的,提交。在这三个命令之后,所有的事情都会像你之前的拙劣合并一样。

(要找到“好”的承诺,最简单的方法是将git checkout master ; gitk,只是环顾四周(并且,顺便说一句,gitk有右键菜单,你可以点击“好”的承诺,并挑选选项“重置分支到这里”或类似的东西)。如果不成功,git checkout master ; git log应该也能工作,如果你能记住你的提交消息或时间戳。)