Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 上游是回购协议还是分支机构?_Git_Github_Github For Windows - Fatal编程技术网

Git 上游是回购协议还是分支机构?

Git 上游是回购协议还是分支机构?,git,github,github-for-windows,Git,Github,Github For Windows,我有一个关于上游的问题,我是否遵循了一个正确的流程,用原始回购协议更新我的分支。我应该这样做 git remote add upstream 'link' 然后 git fetch upstream 更新该上游/主节点 这意味着,这是一种跟踪回购。是否也可以创建为上游跟踪分支?然后我可以像这样切换 git checkout branchname 这两种方法的区别是什么?要更新fork,master分支: git remote add upstream 'link' git checkou

我有一个关于上游的问题,我是否遵循了一个正确的流程,用原始回购协议更新我的分支。我应该这样做

git remote add upstream 'link'
然后

git fetch upstream 
更新该上游/主节点

这意味着,这是一种跟踪回购。是否也可以创建为上游跟踪分支?然后我可以像这样切换

git checkout branchname

这两种方法的区别是什么?

要更新fork,master分支:

git remote add upstream 'link'
git checkout master
git fetch upstream 
git merge upstream/master
git push origin

要更新fork、master分支,请执行以下操作:

git remote add upstream 'link'
git checkout master
git fetch upstream 
git merge upstream/master
git push origin
我认为您将远程存储库与远程跟踪分支混淆了

什么是远程存储库? 给定一个存储库
R
,远程存储库是
R
的克隆,通常通过网络从物理上与之分离

如果要跟踪远程存储库中发生的情况,可以从
R
添加对它的引用。此引用称为远程引用,按照惯例,它通常被命名为
origin

从Git术语表:

大多数项目至少有一个他们跟踪的上游项目。默认情况下,原点用于该目的

“上游”是什么意思? 就Git而言,所有的存储库都是平等创建的——然而,在几乎所有的项目中都有一个存储库的层次结构,其中在顶部是每个人都同意的存储库,是规范的存储库

下面是一个例子:

      +-------+
      |       |
      |  Git  |         <-- upstream
      |       |
      +---+---+
          ^
          |
+---------+---------+
|                   |
|  Git for Windows  |   <-- origin
|                   |
+---------+---------+
          ^
          |
   +------+------+
   |             |
   |  Your Fork  |
   |             |
   +-------------+
使您能够将它们与本地分支(即仅存在于本地存储库中的分支)区分开来

例如:

upstream/master  <-- master branch in the upstream repo
origin/master    <-- master branch in the origin repo
master           <-- local master branch
上游/master我认为你把远程存储库和远程跟踪分支混淆了

什么是远程存储库? 给定一个存储库
R
,远程存储库是
R
的克隆,通常通过网络从物理上与之分离

如果要跟踪远程存储库中发生的情况,可以从
R
添加对它的引用。此引用称为远程引用,按照惯例,它通常被命名为
origin

从Git术语表:

大多数项目至少有一个他们跟踪的上游项目。默认情况下,原点用于该目的

“上游”是什么意思? 就Git而言,所有的存储库都是平等创建的——然而,在几乎所有的项目中都有一个存储库的层次结构,其中在顶部是每个人都同意的存储库,是规范的存储库

下面是一个例子:

      +-------+
      |       |
      |  Git  |         <-- upstream
      |       |
      +---+---+
          ^
          |
+---------+---------+
|                   |
|  Git for Windows  |   <-- origin
|                   |
+---------+---------+
          ^
          |
   +------+------+
   |             |
   |  Your Fork  |
   |             |
   +-------------+
使您能够将它们与本地分支(即仅存在于本地存储库中的分支)区分开来

例如:

upstream/master  <-- master branch in the upstream repo
origin/master    <-- master branch in the origin repo
master           <-- local master branch

上游/master此处
上游
为回购。但我不确定我是否知道问题是什么。如果是回购协议,我在git fetch命令期间何时切换到该回购协议的?“切换到该回购协议”?在什么意义上?您可以配置多个(或无)远程回购,当您
fetch
时,您可以指定是否要从中提取(或全部提取)。然后再次查看:“当未指定远程时,默认情况下将使用原始远程,除非为当前分支配置了上游分支。”此处
upstream
为回购协议。但我不确定我是否知道问题是什么。如果是回购协议,我在git fetch命令期间何时切换到该回购协议的?“切换到该回购协议”?在什么意义上?您可以配置多个(或无)远程回购,当您
fetch
时,您可以指定是否要从中提取(或全部提取)。然后再次查看:“如果未指定远程,默认情况下将使用原始远程,除非为当前分支配置了上游分支。”