如何从Master分支Cherry-pick特定文件夹的提交到本地分支?
只Cherry-pick特定文件夹相关提交的方法
要只同步Master分支指定区间内与LargProj/MyFolder相关的变更,分两步操作:
筛选目标提交
先列出Master分支中MasterCommitHashStart到MasterCommitHashEnd区间内,所有修改过LargProj/MyFolder的提交哈希:git log --pretty=format:"%h" MasterCommitHashStart..MasterCommitHashEnd -- LargProj/MyFolder这个命令会输出符合条件的提交短哈希,你可以先确认这些提交都是你需要的。
批量Cherry-pick
将筛选出的提交批量应用到本地分支:git log --pretty=format:"%h" MasterCommitHashStart..MasterCommitHashEnd -- LargProj/MyFolder | xargs git cherry-pick
注意事项
- 如果Cherry-pick过程中遇到冲突,Git会暂停操作。解决冲突后,执行
git cherry-pick --continue继续;如果要放弃整个操作,执行git cherry-pick --abort。 - 若某个提交同时修改了目标文件夹和其他路径,该提交也会被包含进来。如果本地分支的其他路径没有改动,通常不会产生冲突;若有冲突,需要针对性处理。
- 操作前建议备份本地分支,比如执行
git branch backup-my-local-branch,避免意外丢失工作内容。
内容的提问来源于stack exchange,提问作者Eran David
相关产品推荐
相关产品推荐

