我刚刚开始使用bitbucket,我认为我在理解它的结构时遇到了问题。
对我来说,我有一个名为ABC的新回购,我添加了一些基本的提交,提交和推送源主。现在最新的推动是我的起源/主人,对吗?
现在我想创建一个名为D的分支并对其进行处理。当我完成工作时,我承诺,现在我想把它逻辑地推给我的主人。我不想把它推到原点。对我来说,看起来我必须把所有东西都推向原点,我不明白为什么。对我来说,Origin就像一个里程碑,但我想保留原点,第一次推动我的基本项目构建。
然后我要创建一个分支E并继续工作。最后,对我而言,结构应该是这样的。
这里有一张小图片,希望能够展示我的想法:
http://s7.postimg.org/k1f5q4b13/git_explanaition.jpg
更新:对于那些了解德语https://www.youtube.com/watch?v=0Im_FrvLxXo的人来说,这也帮助我理解了系统。
答案 0 :(得分:4)
您的术语令人困惑。你不要把东西推到分支机构。您将事物合并到分支中。你推送到远程 s。
origin
是远程的名称。简单来说,这是您克隆的存储库。这是一个有两个遥控器的例子:
amb@nimrod-ubuntu:~/git-publish/git-publish$ git remote -v show
github git@github.com:abligh/git-publish.git (fetch)
github git@github.com:abligh/git-publish.git (push)
origin https://github.com/stefanha/git-publish.git (fetch)
origin https://github.com/stefanha/git-publish.git (push)
(不要担心获取和推送的单独条目)。你可以看到我克隆了stefanha
的github repo,名为git-publish
,然后进行了一些更改,将其推送到我自己的github repo(同名)。
因此,您在本地分支之间进行合并,并从远程存储库推送/提取/提取。获取从远程存储库获取更改,然后拉(粗略)提取将它们合并到本地跟踪分支中。推送将您的更改合并到远程仓库的本地副本,并将更改推送到远程仓库。
如果你创建了一个新的分支D
,并且已经为它设置了一个更改集,那么你可以用它做两件事(好吧,可能还有更多,但让我们坚持下去):
您可以将分支D
合并到本地主服务器中。您可能会或可能不希望将主人推向原点。
您可以将D
推送到原点,因此原点现在有两个分支。要做到这一点,第一次需要告诉git要推送的位置,即执行git push -u origin D
而不是git push
。 -u
告诉它跟踪上游分支,即当您下次执行git pull
时从那里开始。
我在这里简化了一下,但基本上就是这样。
答案 1 :(得分:2)
你没有“推”掌握,你“合并”。 “git push”命令用于发送到同一个repo的另一个克隆(通常在另一台机器上),而不是用于在repo的同一个克隆中的分支之间移动提交。