我使用本博客文章中描述的git工作流程.简而言之:每个人都在他/她自己的分支内部发展,在合并回主人之前,你再次将你的分支变为掌握以获得干净的历史.
这有效.
现在我们有一个子模块,因为这是一个内部插件(Rails),我们需要经常更改它.所以大多数时候我在一般分支和子模块分支都有变化.
如上所述,在工作流中使用子模块的最佳方法是什么.
我首先尝试将我的更改推送到子模块(git checkout master,git pull,git checkout branch,git rebase master,git checkout master,git merge branch).
然后,当我尝试为我的root做同样的事情时,我总是在我的插件(子模块)上出错.在做之前我必须解决错误git rebase --continue.因此,如果git mergetool我尝试将我的文件夹转换为文件.
在rebase结束后,我只是恢复<folder_name>.orig以覆盖文件<folder_name>,一切都很好.
但不知何故,它觉得应该有更好的方法.
简而言之:当通过checkout-b/rebase/merge - 工作流工作时,如何同时处理更改的子模块?
无论您使用子模块遵循什么工作流程,都有一条您不应该忘记的规则:(
来自 Git 教程)
如果您想在子模块中进行更改,您应该首先签出分支,进行更改,在子模块中发布更改,然后更新超级项目以引用新的提交。
$ git checkout master
$ echo "adding a line again" >> a.txt
$ git commit -a -m "Updated the submodule from within the superproject."
$ git push
$ cd ..
$ git add a # There is a gotcha here. Read about it below.
$ git commit -m "Updated submodule a."
Run Code Online (Sandbox Code Playgroud)
那么,在尝试从所述父项目进行变基/合并之前,您是否在父项目中提交了子模块的新状态?
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |