修复git rebase

时间:2017-01-31 03:51:03

标签: git bash

我的代码有变化,而我的队友也有变化 我做了一个提交,和他们一样,所以我们最终改变了大部分文件

推完他的分支,然后我拉它,

我从git bash那里得到了这条消息。

First, rewinding head to replay your work on top of it...
Applying: Fixed the account control problem
Using index info to reconstruct a base tree...
M       application/views/templates/header.php
.git/rebase-apply/patch:417: trailing whitespace.
<?php
.git/rebase-apply/patch:418: trailing whitespace.
defined('BASEPATH') OR exit('No direct script access allowed');
.git/rebase-apply/patch:427: trailing whitespace.
$autoload['libraries'] = array('ion_auth');
.git/rebase-apply/patch:436: trailing whitespace.
$autoload['helper'] = array('form');
.git/rebase-apply/patch:451: trailing whitespace.
$config['tables']['groups']          = 'groups';
warning: squelched 772 whitespace errors
warning: 777 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging application/views/templates/header.php
CONFLICT (content): Merge conflict in application/views/templates/header.php
error: Failed to merge in the changes.
Patch failed at 0001 Fixed the account control problem
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort"

问题是,git显示文件未分级,当我尝试提交时,我无法继续变基,如果我跑了,git rebase --skip,我拉的文件也丢失了。

对此有什么解决方法?这是我第一次遇到它。

3 个答案:

答案 0 :(得分:1)

我推测当你做一次拉动时,你实际上做了git pull --rebase,即拉入rebase模式。这意味着您在远程存在的版本之上重新设置了本地分支。完成rebase的一般方法是对每个显示在CONFLICT中的文件采取以下步骤:

  • 手动解决文件中的合并冲突
  • 对每个文件执行git add
  • 解决所有冲突后,再进行git rebase --continue


好消息是,你向我们展示的rebase步骤只有header.php处于冲突状态。但是,rebase的每个步骤都对应于重新应用一个本地提交,并且在rebase的后续步骤中可能存在多个文件中的冲突。

鉴于你可能弄乱了当前的rebase尝试,你可能想要git rebase --abort然后再拉一次。

另一种方法是使用merge作为策略。这只是一个步骤,将导致所有具有conflit的文件同时显示。但也许您的组织正在执行rebase工作流程。

答案 1 :(得分:0)

打开application/views/templates/header.php

删除“HEAD”和“======”之类的陈述。

git add application/views/templates/header.phpheader.php添加到索引

运行git rebase --continue

答案 2 :(得分:0)

拉远程分支后,在某些文件中发生冲突。如果您想保留remote/changes,请接受--theirs,否则接受--ours

$ git pull origin <branch-name>

$ git checkout --theirs -- .             # accept remote (--theirs) changes
$ git add .
$ git commit -m 'Fix conflicts'
$ git push origin HEAD