git 中的 origin 是什么意思,我误解了什么?
What does origin mean in git, and what do I misunderstand?
我刚开始使用 bitbucket,我想我在理解它的结构时遇到了问题。
对我来说,我有一个名为 ABC 的新存储库,我添加了一些基本的归档、提交和推送原始主机。现在最新推送是我的origin/master,对吧?
现在我想创建一个名为 D 的分支并对其进行处理。当我完成工作时,我承诺,现在我想把这个合乎逻辑地推给我的主人。我不想把它推到原点。对我来说,看起来我必须将一切推向原点,但我不明白为什么。对我来说,Origin 就像一个里程碑,但我想在第一次推动我的基本项目构建时保留 Origin。
然后我将创建一个分支 E 并对其进行处理。最后,对我来说结构应该是这样的。
这里有一张小图,希望能表达我的想法:
http://s7.postimg.org/k1f5q4b13/git_explanaition.jpg
更新:对于那些懂德语的人https://www.youtube.com/watch?v=0Im_FrvLxXo这也帮助我理解了系统。
你不"push"掌握,你"merge." "git push"命令是为了发送到同一个repo的另一个克隆(通常在另一台机器上),而不是为了移动在 repo 的同一个克隆中的分支之间提交。
您的术语令人困惑。您不会将事情推到分支机构。您将事物合并到分支中。你推送到远程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
的 git 集线器仓库 git-publish
,然后做了一些更改将其推送到我自己的 git 集线器仓库(同名)。
所以你在本地分支之间合并,push/pull/fetch 来自远程存储库。 fetch 从远程存储库中获取更改,pull(粗略地)fetch 然后将它们合并到本地跟踪分支中。推送将您的更改合并到远程存储库的本地副本,并将您的更改推送到远程存储库。
如果您创建一个新分支 D
,并向其提交了更改集,那么您可以用它做两件事(好吧,可能还有更多,但让我们坚持显而易见的):
您可以将分支 D
合并到您的本地主分支中。你可能希望也可能不希望将 master 推到原点。
您可以将 D
推送到 origin,因此 origin 现在有两个分支。为此,第一次需要告诉 git 要推送到哪里,即 git push -u origin D
而不仅仅是 git push
。 -u
告诉它跟踪上游分支,即当你下次执行 git pull
.
时从那里拉
我在这里做了一些简化,但基本上就是这样。
我刚开始使用 bitbucket,我想我在理解它的结构时遇到了问题。
对我来说,我有一个名为 ABC 的新存储库,我添加了一些基本的归档、提交和推送原始主机。现在最新推送是我的origin/master,对吧?
现在我想创建一个名为 D 的分支并对其进行处理。当我完成工作时,我承诺,现在我想把这个合乎逻辑地推给我的主人。我不想把它推到原点。对我来说,看起来我必须将一切推向原点,但我不明白为什么。对我来说,Origin 就像一个里程碑,但我想在第一次推动我的基本项目构建时保留 Origin。
然后我将创建一个分支 E 并对其进行处理。最后,对我来说结构应该是这样的。
这里有一张小图,希望能表达我的想法:
http://s7.postimg.org/k1f5q4b13/git_explanaition.jpg
更新:对于那些懂德语的人https://www.youtube.com/watch?v=0Im_FrvLxXo这也帮助我理解了系统。
你不"push"掌握,你"merge." "git push"命令是为了发送到同一个repo的另一个克隆(通常在另一台机器上),而不是为了移动在 repo 的同一个克隆中的分支之间提交。
您的术语令人困惑。您不会将事情推到分支机构。您将事物合并到分支中。你推送到远程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
的 git 集线器仓库 git-publish
,然后做了一些更改将其推送到我自己的 git 集线器仓库(同名)。
所以你在本地分支之间合并,push/pull/fetch 来自远程存储库。 fetch 从远程存储库中获取更改,pull(粗略地)fetch 然后将它们合并到本地跟踪分支中。推送将您的更改合并到远程存储库的本地副本,并将您的更改推送到远程存储库。
如果您创建一个新分支 D
,并向其提交了更改集,那么您可以用它做两件事(好吧,可能还有更多,但让我们坚持显而易见的):
您可以将分支
D
合并到您的本地主分支中。你可能希望也可能不希望将 master 推到原点。您可以将
D
推送到 origin,因此 origin 现在有两个分支。为此,第一次需要告诉 git 要推送到哪里,即git push -u origin D
而不仅仅是git push
。-u
告诉它跟踪上游分支,即当你下次执行git pull
. 时从那里拉
我在这里做了一些简化,但基本上就是这样。