我是 GIT 的新手,有一个可能很愚蠢的问题,但到目前为止我搜索到没有帖子提到这一点。情况如下:
A A'
upstream/master-+---+----+----+-----+
|
myworkingbranch +---+---+---
A B C
我在 A 点 fork 一个 repo,然后做出我自己的提交 B,C,...同时,原始 repo 提交了它的提交 A'。通常,通过应用 git rebase,我可以基于 A' 而不是基于 A 来制作 B、C、...。但是,在提交 B 中,我删除了一些文件,这些文件仍保留在 A' 中。然后,每次我执行 git rebase 时,它都会抱怨删除/删除文件的冲突,这意味着我需要通过 mergetool 或其他方式手动解决冲突。
我从 github 的帮助页面中得知,这个问题似乎分为两部分:
通过 git rebase,提交 B、C 将被取消,myworkingbranch 将返回缓存中的 A。在此期间,B中删除的文件如何?他们会恢复吗?我认为不是,因为如果它会,那么就不会有问题。
如果删除的文件没有恢复,当我从上游/主应用提交 A' 时,其中包含对已删除文件的更改,存在冲突。并且每次变基时,都需要手动解决冲突。由于可能有数百个这样的文件,这很糟糕。
Qestion:虽然应用了包含更改 myworking 分支中删除的文件的上游/主提交,但是否有一种优雅的 git rebase 方法,可以自动省略引用那些已删除文件的更改?在我上面提到的问题的两个部分?
我确实发现对于 git merge,我可以使用.gitattribute
file 来省略上游分支中的某些文件。它适用于 git rebase 吗?我想这不会是因为,如果我.gitattribute
通过提交添加这些文件,比如在 myworkingbranch 中添加 D,那么当 git rebase 时,状态 A 将在缓存中,而不是 D,它再次不包含任何.gitattribute
文件,并且在修补 A 期间会发生冲突'
在此先感谢您的帮助。