3

在我们的项目中,我们有 2 个 git 分支,“develop”和“featureBranch”。由于 featureBranch 是从 develop 分支出来的,develop 已经更新了许多提交。现在我想将 featureBranch 合并回开发中。为了测试任何错误,我对 featureBranch 做了一个 rebase 以从开发中提取最新代码,并确定一切都很好,没有错误。现在,我想我想做的是检查开发并将 featureBranch 合并回开发。

截至目前,featureBranch 已签出。

我遇到的问题是,当我尝试结帐开发时,我收到一条错误消息,指出我在 featureBranch 中有未提交的更改会丢失。如果我尝试提交 featureBranch,我会收到一条错误消息,指出没有任何改变,也没有什么可提交的。我尝试对 featureBranch 进行硬重置,但这并没有以任何方式改变或缓解我的情况。如果我对文件进行虚拟更改,例如添加评论,提交仍然告诉我没有要提交的更改。

我似乎被困住了,我完全不知道如何摆脱这个烂摊子。

本质上,我希望 featureBranch 的当前状态成为开发分支的新状态。我想结束 featureBranch 的生命,让一切都回到开发分支。

注意:我正在为 Eclipse 使用 eGit 插件,我更愿意学习使用这个工具来满足我所有的 git 需求。

4

2 回答 2

2

这种不一致的行为构成了一个错误,实际上与您的描述相匹配的行为已在最新的 EGit 版本中得到修复。

于 2013-03-07T10:55:44.683 回答
0

Git 不会将特定的工作流程强加给您,但您已经迈出了正确的第一步并制定了分支策略。我对您正在使用的插件的确切操作不是很熟悉,但我认为 git 命令或多或少会直接映射到 gui 按钮。要在 Windows 中使用命令行界面:在您的源代码位置打开资源管理器窗口,然后从上下文菜单中选择打开“git bash here”。

首先更新您的功能分支(变基)

git checkout featurebranch
git merge develop
git commit

现在功能分支包含对分支开发所做的所有更改。运行所有健全性检查和测试,然后合并回开发:

git stash    # Keep the uncommited changes in case you need them later.
git checkout develop
git merge featurebranch    #will be a fast forward merge as everything have been merged in the step above
git commit
  • 如果您在签出时遇到问题,则可能是您的工作区中添加的文件也存在于您要签出的分支中。

  • 在 Eclipse 中使用 egit 提交时,您必须首先暂存您的更改,打开“git prespecive”并找到您更改的文件,双击它们以将更改移动到暂存更改并提交。

于 2013-03-07T12:21:24.863 回答