Git:只从另一个分支添加文件的某些部分的最佳方法?

Eri*_*got 6 git branch commit git-checkout

假设您有一个分支master和另一个分支production,它们都包含该文件的一个版本prog.py,以及许多其他文件.想象一下,您修改了生产分支中的许多文件,包括prog.py.现在,只有在分支中进行一些更改的最佳方法是应用于分支中的版本?prog.pyproductionmaster

我开始转移到master分支并从production分支导入文件:

git checkout master
git checkout production -- prog.py
Run Code Online (Sandbox Code Playgroud)

因为我希望能够做到git add -p并手动选择更改.问题在于prog.py工作树和索引中都存在问题.如何在不触及工作树的情况下将其从索引中删除?

或者是否有更好的方法来选择prog.py应该从production分支导入到master分支的哪些更改?

ama*_*loy 17

当问到这个问题时,我不确定这是否属实,但是使用当前版本的git,您可以执行以下操作:

git checkout -p production -- prog.py
Run Code Online (Sandbox Code Playgroud)

并且你将获得与大多数-p命令相同的交互式大块挑选器.