我一直在一个目录中工作,我完全改变了限制在这个目录下的产品的行为。我已经提交了更改此目录内容的提交,但我还没有将其推向上游。
然后蓝色衬衫出现并告诉我仍然需要旧系统,而且我所做的改变应该是一个单独的项目。 因此,我希望能够复制原始文件夹并将所有更改重新应用到此新文件夹。或者换句话说,将更改从一个文件夹移动到另一个文件夹。
我想在伪git / bash中做什么:
VERYOLDCOMMIT="$(git rev-parse HEAD~23)"
LATESTCOMMIT="$(git rev-parse HEAD)"
git checkout $VERYOLDCOMMIT
cp directory1/ directory2
git add directory2
git commit -m "Duplicating directory1 to directory2"
pseudo-git apply-changes-from-directory1-LATESTCOMMIT-to-directory2
pseudo-git remove all changes/commits from directory1
有没有办法实现这一点,或者我是否必须签出VERYOLDCOMMIT
并开始在新目录中手动重新应用更改,在我去的时候创建新的提交?
我看过git am
,但还没有找到实现我想要的方法。
我还可能会执行interactive rebase
并将所有更改移至新文件夹,但这可能会有很多工作。
最终结果应该在同一个git存储库和同一个分支上。
Ps。:保持变化非常重要。否则我只会使用新目录
进行粗暴的提交