首页 > 解决方案 > 如何在保留特定目录的同时将其他分支与我的分支同步?

问题描述

这是我所做的:

这是我的问题:

这是我想做的事情:

如何使“my_branch”中的“my_dir/”以外的文件与“master”相同,同时将“my_dir/”下的文件与“my_branch”相同?一种可能的方法是我检出“master”,将“somebody1/”、“somebody2/”等目录下的所有文件复制到其他地方,然后检出“my_branch”,然后将这些文件复制回我的工作目录和然后提交。

但是我怎么能用 Git 命令来做呢?Git是否提供这样的工具?

标签: git

解决方案


从你的分支,假设你的遥控器被命名origin

git fetch
git restore --source=origin/master .
git restore --source=my_branch my_dir/
git commit -am "Resynced everything but my_dir with master"

评论后编辑:如果您运行的是 2.20.1 之前的 git 版本(感谢 Vespene Gas 的提醒),您将无法使用git restore. 替代方法是较旧的命令git checkout <ref> [-- <path> [<other_path>]]。再说一次,正如马特正确指出的那样,您可能需要在操作后删除仓库中不需要的文件,例如git clean


推荐阅读