【问题标题】:git pull origin master is not working as expectedgit pull origin master 没有按预期工作
【发布时间】:2019-10-15 04:39:06
【问题描述】:

(作为新人,我并不是说它不能正常工作,显然我的理解存在问题,因此预期这个词)......

请解释清楚.... 假设我克隆了一个 git repo,里面有 10 个文件。

目前我刚刚克隆,我的本地副本和 github repo 完全相同。

我现在做了两项更改 - 一项在我的 github 存储库中,另一项在我的本地副本中。 例如。 A) 我在 github repo 中添加了文件 11 和 12。 B) 我从我的本地副本中删除文件 9。

现在我希望我的本地副本与我的 github 存储库同步,以便它完全镜像它(如果我删除本地副本并重新克隆它,基本上是相同的状态)

即 A)它应该从 git repo 添加新文件 11 和 12 B)它应该带回 git repo 中的文件 9

谷歌搜索了一下,我发现我们可以使用 git pull origin master 来更新我们本地的 repo 副本 但是运行它说 - 已经是最新的...

git remote -v 有 remote -origin 指向我的 github repo,所以没有 remote 不是问题..

我想我错过了一些东西。 完成我上面提到的 2 个任务的正确命令是什么。

【问题讨论】:

  • 如果您希望本地仓库与远程仓库位于同一位置,我喜欢这样做(警告:这将丢弃任何本地更改):git fetch origin; git reset --hard @{u}
  • 非常感谢,我正是我所需要的。如果您可以将其添加为答案。我会将其标记为已接受

标签: git github git-merge git-clone


【解决方案1】:

要重置本地 repo 以匹配远程,同时丢弃任何未提交的更改(并可能孤立一些提交,以便它们可能被未来的垃圾收集丢弃),您可以这样做:

git fetch origin
git reset --hard @{u}

第一个命令从远程检索提交,第二个命令重置本地存储库以使其与远程匹配。

【讨论】:

  • man git-rev-parse: @{upstream},例如master@{upstream}, @{u} 分支名的后缀@{upstream}(短格式@{u})指的是由branchname指定的分支设置为在其上构建的分支(配置为分支..remote 和分支..merge)。缺少的分支名称默认为当前分支名称。这些后缀在以大写形式拼写时也可以接受,无论大小写,它们的意思都是一样的。
【解决方案2】:

我有几个问题:

1:在 git repo 中添加 2 个文件是什么意思?

2 : 你做过“git add filename”吗?

3 : 你的意思是在你克隆后你的 repo 中有一些新文件吗?

根据我的理解,首先你必须添加你的更改,即使用命令删除 file9 -

git add '文件名'

git commit -m "评论"

git 推送

然后—— git pull 起源大师 或者 git 合并

现在它将显示您的 repo 中的新增内容或合并冲突。

您必须解决这些合并冲突才能将您的分支与 repo 同步。

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 2020-07-27
    • 2012-01-31
    • 2017-10-20
    • 2016-05-04
    • 2013-05-04
    • 2010-11-26
    • 2014-03-12
    相关资源
    最近更新 更多