Git认为我有未推送的更改
在过去的几个月里,我已经注意到好几次,在对我的远程回购(GitHub,虽然我不认为这很重要)进行更改之后,我的本地git会相信它没有进行的更改。在所有情况下,这些更改都是在远程计算机上进行的。最近一次是今天早上。我在工作时在我的机器上做了Git认为我有未推送的更改,git,github,Git,Github,在过去的几个月里,我已经注意到好几次,在对我的远程回购(GitHub,虽然我不认为这很重要)进行更改之后,我的本地git会相信它没有进行的更改。在所有情况下,这些更改都是在远程计算机上进行的。最近一次是今天早上。我在工作时在我的机器上做了git拉取originmaster,以获取三个从家里提交的文件。然后,当我执行git status时,它显示了与本地更改相同的三个更改,这些更改没有被推送到远程 通常,我只是删除本地存储库并从GH中重新克隆它,但老实说,我已经厌倦了这样做。在4台共享此代码的机器
git拉取originmaster
,以获取三个从家里提交的文件。然后,当我执行git status
时,它显示了与本地更改相同的三个更改,这些更改没有被推送到远程
通常,我只是删除本地存储库并从GH中重新克隆它,但老实说,我已经厌倦了这样做。在4台共享此代码的机器之间,我不得不这么做的频率开始变得愚蠢
这听起来有人熟悉吗?有没有比吹走并重新克隆更好的解决方案?这在Mac OS和Linux系统上都发生过,因此我认为这不是任何操作系统特有的。运行
git pull origin master
不会更新远程跟踪分支origin/master
。这将使git认为您有本地未推送的更改。假设origin/master
是默认的pull分支,您可以说git pull
或git pull origin
,它将更新该分支。或者您可以使用git fetch origin
后跟git merge origin/master
可能相关:有趣。我一直使用git pull origin master,但这只是偶尔发生的,不是一贯的吗?不管是哪种方式,使用git-pull-origin
(不使用master
)似乎已将其清理干净。@rjray:也许您(或您使用的某些脚本/应用程序)也会定期执行git-fetch
或git-remote-update
?如果您的远程跟踪分支已经是最新的,那么git pull origin master
将不会导致出现本地未推送的提交。@rjray:当您在origin
中将master
推到master
时,远程跟踪分支origin/master
也将被更新,这可能就是为什么origin/master
有时对您来说是最新的。