gpt4 book ai didi

git - merge 来自同一 git 存储库的两个文件的历史记录

转载 作者:行者123 更新时间:2023-12-05 04:45:47 25 4
gpt4 key购买 nike

我有两个文件,./asm.pydir/asm.py .

A -> B -> C -> D -> master

我在 ./asm.py 上工作对于几次提交,假设最多提交 C .由于我不知道的原因,在提交时 C我添加了一个新文件 - dir/asm.py , 这与 ./asm.py 完全相同在那时候。进一步提交 C->D->master都在dir/asm.py .

很明显,这两个文件的历史是没有联系的。 ./asm.py专为 A->B 开发和 dir/asm.py开发于 C->D->master .我想知道我是否可以以某种方式将这两者结合起来,所以我得到 A->B->C->D->master当我查看 dir/asm.py 的历史时, 然后删除 ./asm.py

最佳答案

完成此操作的一种方法是在 BC 之间插入一个新的提交,该提交执行文件的移动。然后按照从 Cmaster 的顺序挑选其余的提交。

在新的临时分支上尝试可能更容易:

git switch -c temp-branch B # where B is the commit ID
# now move the file manually into the dir folder, and commit it
# When done, cherry-pick the remaining commit range:
git cherry-pick C..master
# you'll likely get a conflict here saying the file was deleted- accept the delete
# To continue the cherry-pick:
git cherry-pick --continue
# it should finish without additional conflicts
# Look at the history of the file and make sure you're happy with it
# Rename your branch to master
git branch -M master

请注意,您可以这样做的原因是您在创建文件副本后没有修改该文件。

关于git - merge 来自同一 git 存储库的两个文件的历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69044742/

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