git push说一切都是最新的

时间:2012-07-02 14:18:06

标签: ios xcode git version-control github

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

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

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

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

git remote -b返回

  

origin / master

     

起源/更新-2.0.1

我很想看到第三个分支

  

起源/更新-2.0.1 /#3178

3 个答案:

答案 0 :(得分:2)

您需要重复第一个命令:

git push origin <name-of-branch>

为您在本地创建的每个新分支创建相应的远程分支。 Git不会推动,除非它有某个地方可以推动。如果这是你需要的,那么这可以是一个空分支。

然后你会以

结束
origin/<name-of-branch>

而不是

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

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

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

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

如果你想要一个很好的视觉解释,为什么使用--no-ff选项是一个非常强大的模型,用于跟踪作为你发布周期的一部分的其他分支的分支,请查看git flow

答案 1 :(得分:0)

切换到要合并的分支,例如转到“master”并将其他分支 update-2.0.1 合并到主服务器。

git checkout master
git merge update-2.0.1
git push
例如,

。然后,您可以从主分支中的更新分支进行所有更改,然后您可以推送它。

如果你真的只需要一个新的分支,那么只做

git branch name

来自你现在的分公司。当您将其推送到原点时,您有一个新的远程分支

检查
git branch -r #remote branches
git branch #local branches

答案 2 :(得分:0)

新分支未被推入远程存储库的原因仅仅是因为我没有使用双引号。

git push origin "new-branch"

同样,当重命名分支时总是使用双引号 - 至少在我的情况下它是有效的,而不是Web中的所有代码示例都使用这种语法。