gpt4 book ai didi

git - 将来自一个子树的提交应用到同一 repo 中的另一个子树

转载 作者:太空狗 更新时间:2023-10-29 14:39:06 25 4
gpt4 key购买 nike

我一直在使用 git-p4 将 Perforce 存储库的一部分克隆到 git 存储库中。我检查过的树具有以下 Perforce“分支”结构:

repo/releaseA
repo /发布B
repo /功能A
repo /功能B

我在本地 git 仓库中有一堆 git 提交到 featureA 目录;但是,我想将这些提交“ rebase ”到 featureB 目录中。有没有办法将最初应用于一个目录的一组补丁/提交转换到另一个目录?

最佳答案

是的。如果您的提交影响 repo/featureA 这将非常容易:

mkdir patches
git format-patch -o patches master..my_featureA_branch

git am patches/* -p3 --directory=repo/featureB

大功告成。

如果您的提交更改了 repo/featureA 之外的文件,您需要将其删除,

cat >mystuff.sed <<\EOD
/^(From [0-9a-f]{40}|diff --git )/!{H;$!d}
x
/^From /b
${h;s,.*--,--,;x}
\,^diff[^\n]* [ab]/repo/featureA/,!{$!d;x;b}
${p;x}
EOD

sed -s -i -r -f mystuff.sed patches/*

git am 之前。任何对 repo/featureA 没有任何影响的补丁,在这种情况下你必须 git am --skip

关于git - 将来自一个子树的提交应用到同一 repo 中的另一个子树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19326233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com