git中的起源是什么意思,我误解了什么?

时间:2015-01-20 12:51:47

标签: git bitbucket

我刚刚开始使用bitbucket,我认为我在理解它的结构时遇到了问题。

对我来说,我有一个名为ABC的新回购,我添加了一些基本的提交,提交和推送源主。现在最新的推动是我的起源/主人,对吗?

现在我想创建一个名为D的分支并对其进行处理。当我完成工作时,我承诺,现在我想把它逻辑地推给我的主人。我不想把它推到原点。对我来说,看起来我必须把所有东西都推向原点,我不明白为什么。对我来说,Origin就像一个里程碑,但我想保留原点,第一次推动我的基本项目构建。

然后我要创建一个分支E并继续工作。最后,对我而言,结构应该是这样的。

这里有一张小图片,希望能够展示我的想法:

http://s7.postimg.org/k1f5q4b13/git_explanaition.jpg

enter image description here

更新:对于那些了解德语https://www.youtube.com/watch?v=0Im_FrvLxXo的人来说,这也帮助我理解了系统。

2 个答案:

答案 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的同一个克隆中的分支之间移动提交。