【问题标题】:git commit showing up on origin remote?git commit 出现在 origin 远程?
【发布时间】:2011-04-26 18:02:08
【问题描述】:

我还在学习 git 的进出,越学越喜欢,越发现自己真的不知道自己在做什么。

我有几个分支,一个开发分支、一个主分支和两个特性分支。

我正在开发一个功能分支,我想签出开发分支。我收到一条警告说我有未提交的更改,所以我做了一个git commit -m'storing changes'

然后我在开发分支上进行了结帐。

问题是我对功能分支的提交似乎已被推送到原始存储库,而我没有这样做。

我不知道它是怎么发生的。我浏览了 reflog,浏览了我的命令历史记录,但我没有明确地在哪里执行 push

我完全糊涂了,我的老板要烧我的脚了。

编辑添加:

这是 reflog 的输出

4f1641c HEAD@{5}: checkout: moving from feature/X to develop
b67d265 HEAD@{6}: commit (merge): stashing
dd9294d HEAD@{7}: checkout: moving from develop to feature/X

b67d265 是被推送的提交。我看到了(merge),但我想如果有合并,它会在本地自动提交......

这是branch -va的输出

  develop                               9b44fac [behind 8] Fixing clicking search annotation causing app crash
* feature/X                       b67d265 stashing
  feature/forecastscroll                8211bfc Updated Forecast Slider to be based on UIScrollView
  master                                4a2a436 Merge branch 'master' of git://X/iOS/X
  servertimedelta                       72e5426 removing comment check
  remotes/X_dev/develop              57f0f03 fixing lockonme not enabled for for new users
  remotes/github/feature/forecastscroll 8211bfc Updated Forecast Slider to be based on UIScrollView
  remotes/origin/HEAD                   -> origin/master
  remotes/origin/develop                fe64f76 Merge branch 'develop' of git://X/iOS/X into develop
  remotes/origin/feature/X        b67d265 stashing
  remotes/origin/master                 4a2a436 Merge branch 'master' of git://X/iOS/X

【问题讨论】:

    标签: git


    【解决方案1】:

    使用

    git branch -va 
    

    了解您的分支指向的位置。您将看到本地和远程分支,其中远程正在跟踪远程端相应分支的状态。

    如果不推送任何内容,就无法推送提交。因此,我认为上述命令提供的信息可以解决问题。 如果仍然存在疑虑 - 请使用执行的命令的详细信息以及上述命令的输出来扩展您的问题。

    【讨论】:

    • 谢谢,我运行了那个命令,但是我怎么知道分支指向哪里呢?我看到了我期望的分支,然后我在它下面看到了一个遥控器列表,但我的分支指向的位置并不明显(我假设因为它们没有指向任何地方,它们是本地的)
    • 如您所知,git 中的分支是指向提交的可移动指针。您的本地分支都是没有“远程”前缀的分支(master、develop、feature/X 等)。以“remotes/”前缀列出的分支称为远程跟踪分支,即跟踪远程存储库中相应分支状态的分支。在您的情况下,远程跟踪分支来自您连接的不同远程(x_dev、github、origin)
    • 远程跟踪分支仅由推送或获取的网络操作更新。 IE。您不能更改任何其他操作(提交或合并或其他)指向的远程跟踪分支(例如 remotes/origin/feature/X)的提交 ID。仅获取(拉)或推。
    • 现在我从打印输出中看到,两个分支 feature/X 和 origin/feature/X 都指向同一个提交 ID。这对我来说意味着你确实推送了你的 feature/X 分支。或者有人从您那里撤出,推送到您的原始仓库,然后您将更改拉入。
    • 附带说明:我不建议使用斜杠命名分支。如果您真的需要将您的分支区分为功能分支,我会使用如下内容:f_newX f_improvelogging b_9999(用于错误修复)
    【解决方案2】:

    还有一种可能性是,如果您的存储库在您的本地网络上可见,则可能有人从您那里提取了它,然后将更改推送到源。

    【讨论】:

      猜你喜欢
      • 2018-04-26
      • 2021-05-03
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 2017-04-25
      相关资源
      最近更新 更多