切换git分支,同时保持当前分支处于冲突状态

时间:2016-03-07 14:53:21

标签: git git-branch git-checkout

我有一个分支master。我创建了一个新分支feature,对其文件fileAfileB进行了一些更改。同时,在同一文件masterfileA中也对fileB进行了一些更改。现在我将master合并到feature。它会在文件fileAfileB中显示冲突。我们假设,现在我决定将功能分支保持在相同的冲突状态,并希望转移到master。

git checkout master在下面发出错误说明:

fileA: needs merge

fileB: needs merge

error: you need to resolve your current index first

如何在保持master原样的情况下切换到feature

EDIT基本上发生的事情是,我从主人那里合并而且发生了一些冲突,这使我对功能的更改毫无用处。所以我想回到主人并切出一个新分支来处理这个功能。同时,我不希望我的早期功能分支被删除,因为它有一些我可能要再次编写的代码,因此我想保留它以便在需要时引用它。

2 个答案:

答案 0 :(得分:2)

您不能保留原样,但您可以将未提交的更改设置为一边,然后返回到您当前所处的状态。

  • guidata会将您未提交的更改设置为
  • % --- Executes just before testgui is made visible. function testgui_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for testgui handles.output = hObject; handles = setupDistPlots(hObject, eventdata, handles); % Update handles structure guidata(hObject, handles); 切换到主
  • 在主人身上做任何你想做的事
  • 当你完成后,git stash save
  • git checkout master会列出您已隐藏的所有更改
  • git checkout feature将恢复上次隐藏的更改

答案 1 :(得分:1)

你不能。

您无法切换分支并使其保持未合并或冲突的状态。该状态仅适用于您的工作目录,而不是专门用于分支。

您的工作目录中有些更改未被Git跟踪。您需要解决这些更改并提交它们,否则在切换分支时它们会丢失。