ios - git push 说一切都是最新的

标签 ios xcode git version-control github

我无法理解 git 本地和远程版本控制的概念。例如,我在本地 git 代表中有一个 iPhone 应用程序。最初这是我的主分支。然后我检查了一个新分支 git checkout -b "update-2.0.1" .

然后我设置git push origin update-2.0.1确保我有一个单独的分支来开发此应用程序更新,并在完成后将其 merge 回我的主分支。很好!

现在我在更新分支上,我想为每个问题 ID 创建分支。所以我说git checkout -b "#3178" - 当我现在尝试将这个新问题分支推送到我的远程存储库时,git 说 "Everything-up-to-date" .

我不明白为什么无法将此问题分支推送到远程存储库?

git remote -b返回

origin/master

origin/update-2.0.1

我很想看到第三个分支

origin/update-2.0.1/#3178

最佳答案

您需要重复第一个命令:

git push origin <name-of-branch>

为您在本地创建的每个新分支创建相应的远程分支。除非有可以推送到的地方,否则 Git 不会推送。如果您需要的话,这可以是一个空分支。

你最终会得到

origin/<name-of-branch>

而不是

origin/<name-of-branch>/<name-of-other-branch>

虽然它们的列出没有层次结构,但实际上它们确实是相互分支的。使用gitk或者其他东西直观地查看历史日志来确认这一点。

如果您想完成该问题的处理并将其 merge 到它开始的分支中,请执行以下操作:

git checkout <name-of-original-branch> // update-2.0.1
git merge --no-ff <name-of-finished-branch> // #3178
git push origin // Will write local update-2.0.1 to origin

查看git flow如果您想要一个很好的直观解释,说明为什么使用 --no-ff 选项是一个非常强大的模型,用于跟踪发布周期中从其他分支脱离的分支。

关于ios - git push 说一切都是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295509/

相关文章:

git - 如何 merge Git 中的特定提交

git - 将东西添加到 git 裸存储库

ios - Swift-如何将选项卡栏和导航栏添加到单个 View Controller ?

ios - 向文本字段添加间距约束

ios - 设置委托(delegate)以将数据从一个选项卡传递到另一个选项卡

ios - CFDictionary 更新到 PHPhotoLibrary kCGImagePropertyExifDictionary 不采取

ios - 每次从 TestFlight 首次启动时应用程序崩溃

ios - NSURLSession 数据任务 - 处理检索到的数据

ios - 具有不同 ViewController 的 UIPageViewController

git - 在 AWS 上安装 Gitlab