git pull 命令显示本地主分支与远程主分支同步完成,但实际上并没有。

3
我正在尝试让本地主分支与origin/master相同。 在我的本地develop分支中,我删除了c.pyd.py,然后将它们推送到origin/develop并合并到origin/master。然后我运行了git checkout mastergit pull origin master,但现在我收到了一个“一切都是最新的”消息。
当前文件差异如下:

本地主分支

 root_directory/
    index.py
    classes/
        __init__.py
        a.py
        b.py
        c.py
        d.py

源/主干

 root_directory/
    index.py
    classes/
        __init__.py
        a.py
        b.py

当我运行git pull origin master命令时,会收到以下信息:
From https://github.com/username/repo
* branch            master     -> FETCH_HEAD
Already up-to-date.

我在另一个 Stack Overflow 上的问题中找到了一个建议使用 git pull --rebase 的答案。这是我从那个命令得到的消息:

Current branch master is up to date.

最后,当我运行git status时,我收到以下信息:
On branch master
Your branch is up-to-date with 'origin/master'
nothing to commit, working directory clean

我在这里做错了什么?有什么方法能使我的本地主分支实际上与origin/master相似吗?


尝试使用 "git reset --soft" 命令,然后再尝试拉取。 - Upesh M
执行 git clean -fdn-n 为干运行)命令,会报告它将删除 c.pyd.py 吗? - VonC
3个回答

1
你是如何使用GUI、拉取请求和合并的方式将origin/developorigin/master合并的?如果没有,你可以先在本地合并然后推送到远程。
$ git checkout develop                # checkout develop 
$ git push origin develop             # push changes to remote develop

$ git checkout master                 # checkout master
$ git pull origin master              # sync with origin/master
$ git pull origin develop             # merge develop into master
$ git push origin master              # push master to remote 

我通过 GitHub 上的 Pull Request 将 origin/develop 合并到了 origin/master。当我尝试您的建议时,收到了“已经是最新版本”和“一切都是最新的”。 - Christopher Byrd
你是否在GitHub的origin/master中看到了你的origin/develop更改?如果是的话,请尝试使用git fetch,然后在本地使用git reset origin/master - Sajib Khan

1

好的。感谢大家的回复,但是在重新搜索后(以新的视角),我已经解决了问题。我找到了this answer,并尝试了建议的修复方法:

git reset --hard origin/master

然后我收到了这条消息:

HEAD 现在位于 5d54662 合并拉取请求 #1 来自 GitHubUser/develop

查看 classes 目录,它现在反映了预期的目录内容:

  root_directory/
      index.py
      classes/
          __init__.py
          a.py
          b.py

再次感谢你们的回答。


0
你是如何将它合并到origin/master的?
合并是一个本地操作:你需要在本地将develop合并到master,然后推送master,才能让另一个仓库从origin master拉取并找到已更改的内容。
git checkout master
git merge develop
git push

我通过 GitHub 上的 Pull Request 将 origin/develop 合并到了 origin/master。尝试了您的建议后,我收到了与我在评论 sajib kahns 回答中发布的相同消息。 - Christopher Byrd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接