1

我刚刚意识到,大约一个星期以来,我的 git 推送实际上并没有进入我在 bitbucket 上的存储库。我正在使用 Mac 并在本地拥有 GitX,这显示了我过去一周的提交尚未提交到 bitbucket。

当我尝试git push时,它显示“一切都是最新的”。我试过git push origin master, git push --all, git push origin --all, 并且git push origin master:master他们都说“最新”。

正如我所说,我在本地使用 GitX 来查看提交/文件。我正在工作的项目的目录是/Applications/XAMPP/xamppfiles/hdtocs/serve,但我在 gitx 中注意到有一个标记为 的存储库/Applications/XAMPP/xamppfiles/hdtocs/serve1。我检查了 serve1 中的提交,果然,它与 bitbucket 上的提交匹配。我不知道我是怎么做的,但它只是服务存储库的旧版本。

尽管提交在本地正确添加到服务存储库,但似乎 git 正在尝试推送 serve1,这解释了为什么它说没有更新。我确保我在服务目录中cd /Applications/XAMPP/xamppfiles/hdtocs/serve

我该怎么做才能让正确的存储库推送?

4

1 回答 1

1

确保您没有处于DETACHED HEAD 模式

在这种情况下,refs/heads本地提交不会修改您的本地,这意味着任何类型的推送都会导致“所有内容都是最新的”错误消息。

如果是这种情况,您可以创建一个引用当前(分离头)的本地分支,或者将现有的本地分支重置为它,然后推送将起作用。

要从您的情况中恢复,您应该创建一个指向当前由分离的 HEAD 指向的提交的分支:

git checkout -b temp

这会将您的 HEAD 重新附加到新temp分支。

然后,您可以合并,如果您希望该分支到您想要使用的分支(它应该是一个快进合并)。

git checkout local_branch
git merge temp

如果您只与 master 合作(作为您唯一的本地分支)

git checkout master
git merge temp

检查分支的状态:

git branch -avvv

然后你可以推动。

于 2013-10-11T05:14:15.997 回答