3 回答
TA贡献1862条经验 获得超6个赞
克隆远程存储库并运行git branch -a(以显示git知道的所有分支)。它可能看起来像这样:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
这master是本地存储库中的一个分支。 remotes/origin/master是在名为master的远程上命名的分支origin。您可以将其称为origin/master,如:
git diff origin/master..master
您也可以将其称为remotes/origin/master:
git diff remotes/origin/master..master
这只是引用同一事物的两种不同方式(顺便说一句,这两个命令的意思是“向我展示远程master分支和我的master分支之间的更改)。
remotes/origin/HEAD是default branch名为的遥控器的origin。这使您可以简单地说origin而不是origin/master。
TA贡献1851条经验 获得超4个赞
技术上不会有任何实际的“远程”东西都1,在你自己的Git回购,也有只是本地名称应该对应于另一个名字,不同的回购。origin/whatever最初命名的将与您从中克隆的回购中的那些相匹配:
git clone ssh://some.where.out.there/some/path/to/repo # or git://some.where...
制作另一个仓库的本地副本。一路上,它会记录在那里的所有分支,并提交那些引用,并将这些分支以名称粘贴到您的本地仓库中refs/remotes/origin/。
根据您花了多长时间git fetch才能更新“我在某处某处的副本”,他们可能会更改其分支,创建新分支并删除一些分支。当您执行自己的操作git fetch(或git pull实际上是获取加合并操作)时,您的存储库将复制其新作品并refs/remotes/origin/<name>根据需要更改所有条目。正是fetching 的那一刻使所有东西都匹配了(嗯,那个和最初的克隆,还有一些pushing的情况-基本上是每当Git有机会检查的时候,但是请注意下面的警告)。
Git通常让您将自己的refs/heads/<name>称为Just <name>,将远程的称为origin/<name>,这都可以正常工作,因为很明显哪个是哪个。有时可以创建您自己的分支名称,使其不明显,但是在它发生之前不必担心。:-)只要给Git最短的名字就可以使它变得显而易见,它就会从那里开始:origin/master是“上次我检查师父在那边的地方”,master也是“根据我的所作所为师傅在那儿的地方” 。根据需要运行git fetch以在“ master在那里”上更新Git。
警告:在低于1.8.4的Git版本中,git fetch有些模式不会更新“ master在那儿”(更准确地说,是不会更新任何远程跟踪分支的模式)。跑步git fetch origin,或者git fetch --all,甚至只是git fetch,不更新。跑步git fetch origin master 没有。不幸的是,这种“不更新”模式是由普通触发的git pull。(这主要是一个小麻烦,已在Git 1.8.4及更高版本中修复。)
1好吧,有一件事叫做 “远程”。但这也是本地的!名称origin就是Git所说的“远程”。它基本上只是克隆时使用的URL的缩写。这也是originin的origin/master来源。该名称origin/master称为“ 远程跟踪分支”,有时会缩写为“远程分支”,尤其是在较早或更正式的文档中。
- 3 回答
- 0 关注
- 478 浏览
添加回答
举报