3

我一直在研究一个 git 存储库,并且一直在将我的本地更改推送到远程服务器……直到最近。当我执行 git push 时,它说一切都是最新的。实际上,我已经在远程版本之前进行了 3 次提交,并且没有得到我的更改。

我已经尝试了 git log -1, git reset --hard 在各个地方发布的解决方案,但这并没有解决任何问题。我是否需要更改该数字以反映我领先的提交数量?

假设我有 5 次提交,为了简洁起见,命名为 1 到 5。我的本地版本为 5,远程版本为 2。Gitk 在提交 5 时显示我的 MASTER,在提交 2 时显示 remotes/origin/master。我需要 git将我的本地版本重置为 2(或 3,未推送到远程的第一个提交)?我的更改会怎样?git 文档说 --hard 将丢弃任何更改,这是否意味着它们将完全丢失?我想保留这 3 次提交的提交历史记录,因为进行了相当多的更改。

4

2 回答 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 public和之间有区别git push --repo=public。首先总是推送到公共,只有在您推送的分支的远程未设置时才推送。
  2. 如果您的分支与远程分支的名称不同,这可能会有所不同。

$ git push remote local_branch:remote_branch // I've made this error today by swapping places, with remote_branch:local_branch Git will not find the branch to update.

希望这可以帮助。就我而言,在重新检查我尝试过的命令时仔细阅读手册有助于并揭示问题(交换分支名称)。

于 2014-01-31T16:04:35.427 回答
3

几分钟前我处于同样的情况(这就是我徘徊在这个线程中的原因)。Anwyay,我能够通过git push origin master而不是仅仅解决它git push

这发生在我创建一个新分支,开始推送到新分支,然后回到主分支并尝试再次推送到该分支之后。

于 2015-10-14T02:07:53.927 回答