2017-10-13 64 views
0

我有3个分支:master,featureXrevertFeatureX重新添加删除的文件

  1. 从主人创建featureX并进行更改。
  2. 合并成featureX成为主。
  3. 创建从主站revertFeatureX
  4. 手动删除新文件并更改featureX
  5. 合并revertFeatureX成为主。
  6. featureX得到了一些新的变化。

现在我的问题是:当我现在尝试再次合并featureX时,只有来自步骤6的更改合并。但不是从featureX的变化。

如何恢复步骤1中的更改​​?

+1

好像你在那儿有点麻烦!你有没有尝试从featureX提交中使用'git cherry-pick'? –

+0

'git merge'应用了自最近的常见提交以来在分支上运行的更改。由于您将'featureX'合并了一次,因此不考虑合并之前在'featureX'上操作的更改;它们已经存在于“master”分支中(即使其中一些被同时取消或覆盖)。 – axiac

回答

1

感谢Stuart Buckingham暗示。 我解决了这个问题是这样的:

  1. 新分支featureX_readd从主
  2. 摘樱桃的最后一次提交
  3. 合并分支featureX(在我的问题步骤1)到featureX_readd
  4. 合并featureX_readdmaster - >完成。
+1

+1,因为这比复制文件和从头开始添加文件更好。这样你仍然有你的提交历史。祝贺你得到它的工作。 –

0

如果只有一个,就是缺少(如您的标题所暗示的),而不是单次的提交,你可以找到你的git log相关承诺签的旧文件文件,然后做了git checkout <COMMIT ID> <MISSING FILE>

+0

不仅一个文件...我得到一个提示,复制所有文件,创建一个新的分支,并将其粘贴到新的分支。那更容易吗? – user6537157

+0

这可能比较容易,但是你会失去所有的版本历史记录,这首先破坏了首先使用git的目的 –

相关问题