git 推送成功,但远程仓库未更新或同步

git push succeeded, but remote repository is not updated or synchronized

我正在 mac os x 上学习 git。我在 mac 上启用了 ssh,并尝试模拟远程仓库和本地仓库。

我 运行 遇到这样的情况,在我更改本地存储库中的文件后,git add/commit/push 成功了,但我没有在远程存储库中看到更改。我的步骤是这样的: 创建远程仓库

$cd ~/learn
$mkdir gittest
$cd gittest/
$git init
$git config --global user.name "username"
$git config --global user.email "useremail"
$touch readme
$git add readme
$git commit -m "empty"

好的,一切正常,然后在另一个目录中,我做了:

$cd ~/learn/client
$git clone trosky@localhost:/Users/trosky/learn/gittest
$cd gittest
$vi readme(add one line)
$git add .
$git commit -m "add line"
$git push origin master:refs/for/master

看起来不错,git 推送打印:

Counting objects: 3, done.
Writing objects: 100% (3/3), 274 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To x@localhost:/Users/trosky/learn/gittest
 * [new branch]      master -> refs/for/master

$git log

我可以看到2条记录。

commit e4a3af902d8d3b708509073e4fd2281ab8355cf0
Author: username <useremail>
Date:   Fri Dec 23 20:54:52 2016 +0800

    add line

commit e024e83b1227f8d1e585cad66e7a4f9b3bb12462
Author: username <useremail>
Date:   Fri Dec 23 20:53:18 2016 +0800

    empty

但是在gittest目录下,我只能看到1条git日志,而且文件还是空的

$git log
commit e024e83b1227f8d1e585cad66e7a4f9b3bb12462
Author: username <useremail>
Date:   Fri Dec 23 20:53:18 2016 +0800

    empty

这太奇怪了。我重复了几次这个过程,每次都是同样的结果。为什么会这样以及如何解决?

在 PUSH 之后你必须合并两个 repo 以移动远程 repo 中的更改。

您正在推送到 refs/for/master,而不是 refs/heads/master,因此您推送的内容不会显示为“真实”分支。相反,您要推送到 refs/for/*,这是来自 Gerrit.

等代码审查工具的常见参考规范

如果您正在使用这些工具之一,您应该检查您的推送是否在某处生成了代码审查项;或查阅手册以确保您所做的一切都是正确的。

否则,如果您只想推送 master 分支,请正确推送到 refs/heads/master 或仅使用 git push origin master 假设您的远程配置为默认配置。