GIT push没有将提交推送到远程仓库

5
我一直在使用 Git 仓库并且一直将本地更改推送到远程服务器... 直到最近。当我进行 git push 操作时,它会显示一切都是最新的。实际上,我已经比远程版本多了 3 个提交,但它没有获取我的更改。
我尝试过各种网站上发布的 git log-1、git reset --hard 等方法,但这些都无法解决问题。我需要更改这个数字以反映我领先的提交数量吗?
例如,我有 5 个提交,为简洁起见命名为 1 到 5。我的本地版本在 5,而远程版本在 2。Gitk 显示我的 MASTER 在提交 5,而 remotes/origin/master 在提交 2。我需要将本地版本重置为 2(或 3,第一个未推送到远程的提交)吗?我的更改会发生什么?Git 文档说 --hard 将放弃任何更改,这是否意味着它们将完全丢失?我想保留这 3 个提交的提交历史记录,因为做了相当多的修改。

不要重置硬件。你会失去更改。你的.git/config文件中为你正在尝试在服务器上更新的分支有什么? - positron
git branch 返回什么?你处于分离头指针模式吗?https://dev59.com/CG865IYBdhLWcg3wIrFg#3965714 - VonC
Git分支给了我这个,其中ENGBE-X分支确实是独立的分支。http://pastebin.com/pimwZjTr - Tom Cannaerts
假设我现在处于分离头状态,那么我是如何到达这里的呢?我一直在合并分支,所以我认为它应该是在某个地方。这是git log的清单,其中提交32320e...是远程上最后一个提交。对我来说看起来并没有什么特别之处。http://pastebin.com/uJfaQ9WY。那么,你们有什么想法来解决这个问题吗? - Tom Cannaerts
2个回答

3

首先,仔细检查您的配置。

  1. 确保您已经正确地推送了它。
  2. 确保您已经将其推送到您认为的位置。

以下是可以帮助您的内容:

$ git log --full-history // is your commit really there?
$ git reflog // operation history
$ git remote -v // what are your remotes? 
$ git remote show DESIRED_REPO // do you have the remote repo you wanted to push to configured? the DESIRED_REPO?

最后,请确保您使用了正确的推送符号:

  1. git push publicgit push --repo=public之间有区别。第一个总是直接推送到public,而第二个只有在你要推送的分支的远程设置不存在时才会推送。
  2. 如果您的分支名称与其远程对应项不同,则可能会出现问题。

$ git push remote local_branch:remote_branch // 我今天就犯了这个错误,把位置弄反了,应该是remote_branch:local_branch Git才能找到要更新的分支。

希望这可以帮到您。在我的情况下,仔细阅读手册并重新检查我尝试的命令,揭示了问题(交换了分支名称)。


3

我几分钟前也遇到了同样的情况(这就是我来到这个帖子的原因)。但是,我通过使用git push origin master而不仅仅是git push来解决了它。

这是在我创建新分支、开始向新分支推送后,回到主分支并尝试再次推送到该分支时发生的。


2
具有讽刺意味的是,我确实执行了推送到主分支的操作,但仍然... - greendino

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