【问题标题】:git checkout branch and local repositorygit checkout 分支和本地存储库
【发布时间】:2016-12-14 02:09:33
【问题描述】:

我有一个关于我在本地看到的文件版本的查询。假设我克隆了一个 git 存储库。因此,特定的 file.txt 对应于版本 '6'

1--2--3--4--5--6        --> master
   |--A--B--C--D--E--F  --> BRANCH1
         |--X--Y        --> BRANCH2

如果我切换到 BRANCH1,并且执行 'git pull' file.txt 将对应版本 'F'?

如果我然后切换到 BRANCH2,并且执行 'git pull' file.txt 将对应于版本 'Y'?

如果我再次切换回'master',我会看到版本'6'吗?

请告诉我。

【问题讨论】:

  • If I 当你这样做的时候,是吗?一些background reading 是个好主意,而不是问一些你可以自己尝试的问题。

标签: git github version-control


【解决方案1】:

这是因为你在远程github的file.txt版本不同,master是6版本,BRANCH1是F版本,BRANCH2是Y版本。

所以当你只是切换到不同的分支并执行git pull时,git会拉取不同分支的相关版本。

例如当你切换到master并使用git pull时,git会从github拉取file.txt的第6版给master。

【讨论】:

  • 问题读起来像“git pull”是更新文件的操作,事实并非如此。这个答案通过再次暗示 git pull 是实际更新文件而不是切换分支的操作​​来传播这种误解。相关且更重要的是:您还没有回答所提出的问题(无论它有多糟糕)。
  • git pull 是用远程分支更新当前本地分支。因为所有远程分支都有file.txt(或者我们称之为file.txt有不同的版本)。这不是重点吗?
  • git pullgit fetch + git mergegit rebase。正如我所提到的,仅检查提交/分支是实际更新文件的步骤,除非自上次拉/取以来远程已更新,因为最后一步也检查新状态。这个问题令人困惑;但这个答案也是 - 它读起来像是对 git 的 svn 理解。
  • 是的,我知道git pull 是什么意思。但是我们不可能告诉任何人何时何地使用git pull。即使本地分支是最新的,使用 git pull 也没关系。 file.txt 更改版本的原因是结帐到不同的分支,你同意我的观点吗?顺便说一句,我比 svn 更熟悉 git。
猜你喜欢
  • 2016-03-21
  • 2016-09-19
  • 2022-11-09
  • 2021-08-22
  • 2010-12-04
相关资源
最近更新 更多