Git对我的源代码做了什么?

时间:2010-08-29 23:31:19

标签: git

如何解决以下问题?

<<<<<<< HEAD
<<<<<<< HEAD
-(int)existsMedia:(NSNumber*)mediaId {
 NSFetchRequest *request = [[NSFetchRequest alloc] init];
 NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"mediaId == %@", mediaId]];
=======
-(int)existsMedia:(NSNumber*)mediaMessageId {
 NSFetchRequest *request = [[NSFetchRequest alloc] init];
 NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"messageId == %@", mediaMessageId]];
>>>>>>> dc244e93b3e351ab6dce5785e1f2b686305a0051
=======
-(int)existsMedia:(NSNumber*)mediaMessageId {
 NSFetchRequest *request = [[NSFetchRequest alloc] init];
 NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"messageId == %@", mediaMessageId]];
>>>>>>> parent of 4a5c497... Bug Hunting for Media Support
 NSEntityDescription *entity = [NSEntityDescription entityForName:@"ELMMedia" inManagedObjectContext:managedObjectContext];
 [request setEntity:entity];
 [request setPredicate:predicate];
 NSError *error;
 NSUInteger count = [managedObjectContext countForFetchRequest:request error:&error];

 [request release];

实际上,是的,有一个合并。但我不知道为什么。是否有可能在00:25得到正确的提交?

alt text

3 个答案:

答案 0 :(得分:2)

Git发现合并冲突并修改了相关文件以指出冲突的位置。

编辑文件解析合并,保存并提交它们。

更多信息:


修改

您说您没有执行合并,但git pull包含合并:根据您的树,您似乎使用过时的副本对本地存储库进行了更改。当您拉动远程存储库时,它启动了合并。

解决合并只是将文件编辑为您想要的方式并重新提交,并且是SCM的标准部分。

答案 1 :(得分:1)

运行git mergetool(假设您在mergetool中设置了.gitconfig工具)。它会启动您想要解决问题的任何工具。

答案 2 :(得分:1)

你的问题是你已经将提交推送到你的远程存储库,然后在本地修改它,再做一次提交然后撤回。

由于远程存储库包含修订提交的旧“版本”,因此新的本地提交不是远程分支的直接后代。这意味着pull将触发两个分支的非平凡(即非快进)合并。远程端的旧提交和本地影响的修改提交会更改相同文件的相同区域,因此您会发生冲突。

假设您没有(或不想要)任何本地更改,并且您希望最近的实际提交(“Bug Hunting for Media Support”)成为主分支的头部,您可以撤消这样的合并尝试。

我不是100%肯定你的图表,我相信这意味着你正在尝试合并,但你还没有进行合并提交。如果是这样的话(请注意,这会抛弃本地更改):

git reset --hard

如果您已提交合并(即“ - ”实际上是提交消息),则您必须改为运行git reset --hard HEAD^

在此之后,您的本地主人应该处于旧提交状态。

如果这是成功的,为了使您的远程存储库正确,您需要强制推送。 (这通常是推荐,但正如你所说,你是唯一一个使用你的存储库的人,没关系。)

你应该试试这个:

git push -f origin master

如果这不起作用(例如,如果遥控器设置了denyNonFastForward),则必须采用其他方法。有关如何解决此问题的详细信息,请参阅here