git - 将被推送的 2 个提交是什么?
问题描述
由于在跨两个不同设备的同一分支中开发,每个设备之间有大量的推送和拉取,以及来自 master 的合并(许多其他提交进来)。我的第二台设备上的 Git 存储库处于以下状态:
% git status
On branch user/selbie/amazingfeature
Your branch is ahead of 'origin/user/selbie/amazingfeature' by 2 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
问题是我不知道这两个提交可能是什么。我最近将分支与另一个 repo 上的 master 合并,并将这些更改拉到第二个设备。我本来希望回购在这一点上是同步的。
搜索堆栈溢出,大多数像这样的答案建议我应该输入这个:
% git diff origin/user/selbie/amazingfeature user/selbie/amazingfeature
但它不会打印任何结果。git push
在盲目做之前,如何获得本地和远程之间的差异或提交?
解决方案
如果我们添加回这些细节(这需要更多地了解它们):
...在同一分支中跨两个不同的设备进行开发,每个设备之间有很多推和拉...
我们也许能够提出一个更狭隘、不那么笼统的答案。但只回答一般问题更容易。
什么......提交......会被推送[如果我跑了]?
git push remote name
为了弄清楚这一点,第一步是确保您自己的本地存储库相对于 named 是真正最新的remote
,我们可以使用. 这可能什么都不做,或者它可能会在我们的本地存储库中更新。1 如果确实更新了,我们可能必须重新计算提交,因为它可能不再是两个提交,但无论如何我们现在可以轻松地找到我们拥有的提交集,他们没有,这会发送:git fetch remote
origin/name
origin/name
git push
git log [options] origin/<name>..<name>
如果当前分支是name
并且是上游,我们可以在这里简称。添加和/或让 Git 绘制我们要发送的提交的图表。origin/name
git log @{u}..
--graph
--oneline
正如0x5453 评论的那样,如果您git diff
什么也没显示(并且如果git fetch
没有/不更新origin/user/selbie/amazingfeature
),则很可能您有两次提交,其中第二次提交只是取消了第一次提交所做的任何事情。
1如果我们配置的东西特别奇怪,它可能会更新一些其他名称。假设我们没有进行奇怪的配置,即 Git 将按照正常方式工作。:-)
推荐阅读
- python - 在 python 的元组列表中有效且更快地迭代超过 3600 万个项目
- c - 检查数组中的元素是否为 int 类型
- python - 基于子字符串合并数据帧-python
- google-chrome-extension - 如何检查铬扩展是否在谷歌浏览器中运行?
- discord.js - 禁止命令不起作用,没有错误消息 discord.js
- python - 未找到 Python Selenium 模块
- mariadb - mariadb - 表 XXX 在引擎中不存在
- json - 使用python根据json文件中的模式过滤json
- powershell - Invoke-RestMethod 返回“底层连接已关闭”,URL 显示“连接已重置”
- java - 如何在Android Studio中的listview上获取注册的ID或主键值