我正在尝试将一个分支上整个文件夹的内容移到另一个分支。所有修改或添加的文件都正确反映在新分支中,但是删除的文件仍然显示,好像没有与之相关的更新。
当我修改其中一个文件时,添加一个新文件并删除DEV分支上TSTGIT文件夹中的现有文件之一,然后提交更改,检出UAT分支并从DEV分支检出TSTGIT文件夹,我希望可以看到全部3个文件更改,但已删除的文件将被完全忽略。
git checkout UAT
git checkout DEV -- TSTGIT
git status
所做更改:
new file: TSTGIT/addedFile.txt
modified: TSTGIT/modifiedFile.txt
我发现的唯一方法是使用'patch'参数,在该参数中我还可以选择删除文件,但我想自动执行此操作而无需提供其他信息
git checkout -p DEV -- TSTGIT
请问您是否有办法强制所有更改都包括在内?
非常感谢你的帮助 ;)
问题git checkout DEV -- TSTGIT
在于该命令复制文件,而不应用更改。复制的文件当然不包括已删除的文件。
如果要同步目录,即使其成为另一个分支的目录的精确副本,则可以在从另一个分支检出目录之前将其删除:
git checkout UAT
rm -rf TSTGIT
git checkout DEV -- TSTGIT
该方法的问题在于,它将删除存在于分支中DEV
但从未存在于(并且未被删除)中的文件UAT
。
如果要应用更改而不删除目录,git checkout -p
则唯一的方法是。可能是git cherry-pick --no-commit
; 但是之后,您必须还原除以外的所有目录TSTGIT
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句