Git 重新添加已删除的文件

Git 重新添加已删除的文件,git,Git,我有三个分支:master、featureX和revertFeatureX 从master创建featureX,并进行更改 将featureX合并到master中 从master创建revertFeatureX 手动删除新文件和featureX的更改 将revertFeatureX合并到主文件中 featureX进行了一些新的更改 现在我的问题是:当我现在再次尝试合并featureX时,只合并步骤6中的更改。但不是来自featureX的更改 如何从步骤1中恢复更改?如果只缺少一个文件(如标题所示

我有三个分支:
master
featureX
revertFeatureX

  • 从master创建
    featureX
    ,并进行更改
  • featureX
    合并到master中
  • 从master创建
    revertFeatureX
  • 手动删除新文件和
    featureX
    的更改
  • revertFeatureX
    合并到主文件中
  • featureX
    进行了一些新的更改
  • 现在我的问题是:当我现在再次尝试合并
    featureX
    时,只合并步骤6中的更改。但不是来自
    featureX
    的更改


    如何从步骤1中恢复更改?

    如果只缺少一个文件(如标题所示),而不是单个提交,您可以通过在您的
    git日志中找到相关提交,然后执行
    git checkout
    来签出旧文件,谢谢您的提示。 我这样解决了这个问题:

  • 新分支
    featureX\u readd
    来自master
  • Cherry选择最后一次提交(我的问题中的步骤1)
  • 将分支
    featureX
    合并到
    featureX\u readd
  • featureX\u readd
    合并到
    master
    ->完成

  • 看来你有点麻烦了!您是否尝试过使用featureX提交中的
    git cherry pick
    git merge
    应用自最近一次常见提交以来对分支操作的更改。由于您合并了
    featureX
    一次,因此不会考虑合并前对
    featureX
    所做的更改;它们已经存在于
    分支中(即使其中一些文件同时被取消或覆盖)。。。我得到一个提示,复制所有文件,创建一个新分支并将其粘贴到新分支中。这容易吗?可能更容易,但您将丢失所有版本控制历史记录,这有点违背了首先使用git+1的目的,因为这是一个比复制文件并从头添加要好得多的解决方案。这样,您仍然拥有提交历史记录。恭喜你成功了。