我有一个托管在 Bitbucket 上的 iOS 项目,它使用 MapBox-iOS-sdk,我将其合并为 git 子模块。我跟踪的提交在开发分支上,而不是发布分支上。比如说,一段时间后,当我尝试从 Bitbucket 重新克隆我的项目时(通过 git clone --recursive)。而且我也喜欢使用子模块 MapBox-iOS-sdk 从 MapBox 更新到最新版本。所以我想拉。但首先它是一个“无分支”,所以我进入了我自己项目的 MapBox-iOS-sdk 目录并做了一个
git checkout -b develop remotes/origin/develop
它给了我输出:
M MapView/Map/SMCalloutView Previous HEAD position was 6c6be52... closes #148: incorporate @tmalloy's RMShape bezier curve enhancements
Branch develop set up to track remote branch develop from origin.
Switched to a new branch 'develop'
然后,我做了一个git pull
,它告诉我我已经是最新的了。此时,我的第一个问题是:我是否已经在 Mapbox 开发分支的最新提交中?
此时,我输入git status
Mapbox-iOS-sdk 目录,我得到以下内容:
git status
# On branch develop
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: MapView/Map/SMCalloutView (new commits)
#
no changes added to commit (use "git add" and/or "git commit -a")
这是我的第二个问题:这到底是什么意思?反正我不是想修改mapbox-ios-sdk,我只想用正式版,但是为什么要我提交呢?如果我确实提交,在我看来,我将修改 Mapbox sdk 的新版本,随后在我自己的项目中,我将标记到这个特定的提交,这不在官方来源上。由于找不到提交,我试图拉动我的项目的同事不会有问题吗?
编辑: SMCalloutView 是 Mapbox sdk 本身合并的一个 git 子模块。
编辑 2: 当 pwd 位于 Mapbox-ios-sdk 基目录(我的项目的子目录)时发出所有命令。
编辑 3: 该项目位于https://bitbucket.org/t2wu/container-bug