问题描述
我创建(git flow feature start branch1
)并发布(git flow feature publish branch1
)基于develop
的git flow功能分支。在它们之后,我将其标记为Pull Request
,以便其他开发人员查看该分支中的更改。但是现在我想进一步工作,因此我基于git flow feature start branch2
在等待branch1
的地方创建一个新的功能分支(Pull Request
)。但是在创建branch2
之后,只有branch1
中的文件被忽略(所有文件都与.gitignore
中的条件匹配)。
当我检出branch1
时,我看到整个词典包含所有文件,但是为什么不是在所有新创建的功能分支(branch2
)中呢?所以我不能再工作了。
我找到了问题,但没有找到解决方法:
在.git/config
文件中,记录了我的branch2
分支develop
的 base ,而不是branch1
:
[gitflow "branch.feature/branch1"]
base = develop
[branch "feature/branch1"]
remote = origin
merge = refs/heads/feature/branch1
[gitflow "branch.feature/branch2"]
base = develop
使用以下命令,我可以从branch1
中的branch2
移动所有文件,但是.git/config
文件中的 base 不会更改为{{1} } ...:
branch1
使用此模板构建:git rebase --onto feature/branch1 develop feature/branch2
如何从git rebase --onto newBase oldBase feature/branch
更改基本分支?只需将branch2
中的 base-branch 从branch2
更改为branch1
?
解决方法
您可以在base
中更改.git/config
,但不能更改。
base
的{{1}}也是branch2
,因为这是您以后要合并到的分支(在develop
已经合并之后)。
这也反映在branch1
中,它不是从您当前所在的位置开始,而是始终从git flow feature start branch2
开始。这就是git-flow的全部想法。
现在不用担心develop
,除非您想做您的问题未明确表达的事情。
合并.git/config
的PR,然后为branch1
创建PR,一切正常。