我在我的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 push prints:
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
这太奇怪了。我重复了几次这个过程,每次都有相同的结果。为什么这样以及如何解决?
答案 0 :(得分:2)
您正在推送refs/for/master
,而不是refs/heads/master
,因此推送的内容不会显示为“真正的”分支。相反,您正在推动refs/for/*
这是Gerrit等代码审核工具中常见的refspec。
如果您使用其中一种工具,则应检查您的推送是否在某处生成了代码审核项目;或查阅手册以确保您正确地完成所有操作。
否则,如果您只想推送主分支,请正确推送到refs/heads/master
或假设您的遥控器的默认配置使用git push origin master
。
答案 1 :(得分:0)
在PUSH之后,您必须合并两个仓库,以便在远程仓库中进行更改。