Git:如何将dev分支的指定文件迁移至master分支的目标目录
解决Git分支间文件跨路径迁移的问题
我来帮你搞定这个文件迁移的问题~你之前用git checkout dev logistics/dev/raw_to_ods/folder1之所以不符合需求,是因为Git会完整复制原分支的目录结构到当前分支,所以才会在master里生成和dev一样的logistics/dev/...路径。
下面给你两种可行的方法,按需选择:
方法一:直接提取文件内容到目标路径(更高效)
这种方法不需要生成临时目录,直接把dev分支里的文件内容写入到master分支的目标位置:
- 先切换到master分支:
git checkout master - 如果目标目录还不存在,先创建它:
mkdir -p logistics/prod/raw_to_ods/folder1 - 从dev分支提取指定文件的内容,写入到目标路径:
git show dev:logistics/dev/raw_to_ods/folder1/data.yml > logistics/prod/raw_to_ods/folder1/data.yml - 最后提交变更:
git add logistics/prod/raw_to_ods/folder1/data.yml git commit -m "Migrate data.yml from dev's dev path to prod directory"
方法二:先临时检出再移动文件(更直观)
如果习惯可视化操作,也可以先把文件检出到临时位置,再手动移动到目标路径:
- 切换到master分支:
git checkout master - 临时从dev分支检出目标文件(此时会生成原路径结构):
git checkout dev -- logistics/dev/raw_to_ods/folder1/data.yml - 将文件移动到你想要的prod路径下:
mv logistics/dev/raw_to_ods/folder1/data.yml logistics/prod/raw_to_ods/folder1/ - 删除临时生成的
logistics/dev目录(如果不需要的话):rm -rf logistics/dev - 提交变更:
git add logistics/prod/raw_to_ods/folder1/data.yml git commit -m "Migrate data.yml from dev branch to prod directory"
两种方法都能实现你的需求,选哪种看你个人习惯~
内容的提问来源于stack exchange,提问作者Vlad Aleshin
相关产品推荐
相关产品推荐

