此示例位于github网站上的octocat example之后的“第3步:配置遥控器”中:
git remote add upstream git://github.com/octocat/Spoon-Knife.git
git fetch upstream
据我所知,在执行这些命令之后,github用户octocat自克隆回购以来所做的更改现在已在我的项目本地存储中实现。 但是假设在执行上述命令后,用户octocat再次在项目中进行更改。
Q1:现在所有更改都会自动更新到我的本地文件夹吗? (我怀疑没有)
如果Q1的答案是否定的:
Q2.1:为了让我再次更新新的更改,我是否只需要再次执行单个命令git fetch upstream
来更新新的更改?
Q2.2:我是否可以仅记录最新提取中所做的更改?
答案 0 :(得分:4)
Q1:不会.Git不会对遥控器进行轮询。你必须命令git用git fetch
(或拉)来拉下变化。
但是,如果您的分支正在跟踪远程分支(可能是),那么当您发出git status
时,git会告诉您分支是在远程分支的前面还是后面。如果你领先,那么你已经提交了提交,而遥控器上没有任何变化。如果你落后了,那么新的提交已被添加到遥控器。
Q2:是的。但请注意,git fetch
仅会将更改拉下来。它不会将它们合并到您当前的分支中。因此,在您实际合并它们之前,您将不会“看到”更改。他们住在一个单独的分支 - 在这种情况下,上游/主人(假设主人是有问题的分支)。
当您检查了更改并准备将它们合并到本地分支时,您可以这样做:
git merge upstream/master
Q2.2:是的。这就是为git fetch
做有用的原因。它可以很容易地看到更改的内容,而不是git pull
,它在一次操作中进行获取和合并。虽然你仍然可以获得这种情况下的变化列表,但这有点困难。
在您执行git抓取的情况下,要查看所做的更改,请执行git diff upstream/master
。