本地和远程git回购不同,但表示“已经是最新的”

时间:2012-04-23 17:05:50

标签: git github

帮助!我的git回购正在泡菜中!

推送和拉动本地和远程分支说Already up-to-date.但是检查文件会发现它们之间存在差异。

这很复杂,因为我有两个本地分支,主分区和分段,每个分支都跟踪远程版本。

我花了几个小时试图找出一种系统的方法来解决这个问题。但我担心我会让情况变得更糟,并在此过程中失去编辑。

在这些情况下是否有推荐的方法?

修改

->git remote show origin                 
* remote origin
  Fetch URL: git@github.com:mygits/myrepo.git
  Push  URL: git@github.com:mygits/myrepo.git
  HEAD branch (remote HEAD is ambiguous, may be one of the following):
    master
    staging
  Remote branches:
    master  tracked
    staging tracked
  Local refs configured for 'git push':
    master  pushes to master  (up to date)
    staging pushes to staging (up to date)

1 个答案:

答案 0 :(得分:1)

你的'git remote origin show'表示master和staging是相同的。所以两者都是“已经最新”并不奇怪,但这取决于你在当地拥有的东西。探讨一下:

git fetch origin
git diff --name-status master..origin/master         # ditto for 'staging'
git diff --name-status master..staging                  # local differences

有了这三个'差异'(两个显示,另外一个用于'origin / staging'),你将了解git认为你的四个分支上的提交之间的差异。

您仍然存在工作目录中的内容之间存在差异的问题,但“git status”会向您显示这些内容并且它们与您的推拉问题无关。 (如果有任何局部差异会阻止你没有表明问题的拉动。)