【发布时间】:2011-01-29 09:30:05
【问题描述】:
我有一个分支,我想根据我的 master 上的最新提交进行 rebase。问题是 master 上的一个干预提交是删除并忽略一组特定的文件(请参阅this question)。
如果我只是做一个直接的变基,这些文件将再次被删除。有没有这样做,inside git,而不是手动将所有文件复制出来,然后再将它们复制回来?
或者我应该做一些事情,比如从 master 创建一个新分支,然后只合并来自旧分支的提交?
尝试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 中变基分支,然后在完成后合并,但我仍然想知道是否有办法“正确”地做到这一点)
更新警告任何尝试此操作的人。这里提出的解决方案很好,但是当您再次 checkout master 时,将重新应用 B 提交,并且您会再次丢失所有文件:(
【问题讨论】:
-
您的分支只需要 A,还是 A、C 和 master HEAD?
-
@VonC,好吧,我最初认为所有这些,但我现在只用 A 就可以了。最终,我希望在最后(分支开发完成时)变基将所有内容都带入主“流”,但我想更糟糕的是我可以在最后合并。
标签: git rebase git-rebase