鉴于问题标题,我如何简单地恢复存储在A?
中的文件具体而言,文件存在于功能分支上,而功能分支仅用于维护这些文件。
我现在希望在 devel 分支中进行所有这些更改,但将 feature_x 简单合并到devel中将不包含已删除的文件。我的猜测是git检测到这些文件已被删除,因此它们的更改与开发无关。
我希望解决方案不包含devel中所有rm提交的恢复(遗憾的是,分支的外包不是非常线性的)。
编辑:即使是恢复也会丢失历史记录,因为git只跟踪内容,而不是文件。因此,如果使用恢复或结账方法无关紧要,则它们与IMHO等效。答案 0 :(得分:1)
我知道这很难看,但简单的解决办法就是:
git checkout feature_x -- filename
您还可以通过以下方式简化此过程:
git checkout branchA
for i in "$(git log feature..branchA --summary --diff-filter=D | grep "delete mode" | cut -d " " -f 5-)" ; do
git checkout feature -- "$i"
done
答案 1 :(得分:1)
如果您不想还原,我相信您必须一次恢复已删除的文件。
此命令将在删除文件之前提交提交。 (它将回顾并找到[filename]更改的最新提交)
git rev-list -n 1 HEAD -- [filename]
然后你可以像往常一样检查文件并合并。