gpt4 book ai didi

git:如何在通过文件删除进行 rebase 提交时不删除文件

转载 作者:太空狗 更新时间:2023-10-29 13:44:22 27 4
gpt4 key购买 nike

我有一个分支,我想将其 rebase 到我的 master 上的最新提交。问题是 master 上的中间提交之一是删除并忽略一组特定的文件(参见 this question )。

如果我直接进行 rebase,这些文件将再次被删除。有没有办法在 git 中执行此操作,而不是手动复制所有文件,然后再将它们复制回去?

或者我应该做一些事情,比如在 master 之外创建一个新分支,然后只 merge 来自旧分支的提交?

尝试 ascii 艺术:

master    branch
| w work in progress on branch
C | committed further changes on master
| |
B / committed delete/ignore files on master
| 2 committed changes on branch
| /
A / committed changes on master which I now need to get branch working
| 1 committed changes on branch
0___/ created branch

(做艺术,我意识到我可以从 A rebase 分支,然后在我完成后 merge ,但我仍然想知道是否有办法“正确地”做到这一点)

更新 警告任何尝试此操作的人。这里提出的解决方案很好,但是当你再次检查 master 时,B 提交将被重新应用,你再次丢失所有文件:(

最佳答案

根据您的评论,我了解到您需要在 master B 之上重新设置 dev 分支。
您不希望看到您在一个分支中删除的文件在另一个分支中被删除。

一个可能的解决方案是:

  • rebase --interactive master 重写提交顺序(如果可能)
    0--A--C'--B'  master     \      --1--2--w     dev
  • rebase dev 分支在 C' 之上(代表除 B 之外的所有主提交)
    0--A--C'--B' master            \            --1'--2'--w' dev

这意味着您还没有将 master 推送到另一个存储库(否则,对于那些希望将 master pull 入他们自己的 repo/master 分支的人来说,这将是一场 merge 噩梦)

关于git:如何在通过文件删除进行 rebase 提交时不删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2476274/

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