Git认为我有未推送的更改。

3
我在过去几个月中注意到了几次,有时在将更改推送到我的远程仓库(GitHub,尽管我认为这并不重要)之后,我的本地git会认为它的更改尚未被推送。 在所有情况下,这些都是实际存在于远程的更改。 最近一次是今天早上。 我在工作机器上执行了git pull origin master以获取从家中进行的三个提交。 然后,当我执行git status时,它显示了与本地未推送的相同的三个更改。
通常,我只需删除本地存储库并从GH重新克隆它,但说实话,我已经厌倦了这样做。 由于4台机器共享此代码,因此必须这样做的频率越来越高,这变得有点荒谬。
这是否听起来熟悉? 是否有比仅清除并重新克隆更好的解决方案? 这在Mac OS和Linux系统上都发生过,因此我认为它不特定于任何操作系统。

或许相关:https://dev59.com/hnI-5IYBdhLWcg3wF0Uc - Mechanical snail
1个回答

3
运行git pull origin master不会更新远程跟踪分支origin/master。这将导致git认为您有本地未推送的更改。假设origin/master是您的默认拉取分支,您可以只说git pullgit pull origin,它将更新该分支。或者您可以使用git fetch origin,然后使用git merge origin/master

有趣。我一直使用 git pull origin master,但这只是偶尔发生,不一致?不管怎样,执行 git pull origin(不带 master)似乎已经解决了这个问题。 - rjray
@rjray:也许你(或者你使用的某个脚本/应用程序)通常也会执行git fetchgit remote update?如果你的远程跟踪分支已经是最新的,那么git pull origin master将不会导致本地未推送的提交出现。 - Lily Ballard
@rjray:当您将master推送到originmaster时,远程跟踪分支origin/master也会更新,这可能是为什么origin/master对您来说有时是最新的原因。 - Mark Longair

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